summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/action_map_editor.cpp4
-rw-r--r--editor/action_map_editor.h4
-rw-r--r--editor/animation_bezier_editor.cpp4
-rw-r--r--editor/animation_bezier_editor.h4
-rw-r--r--editor/animation_track_editor.cpp12
-rw-r--r--editor/animation_track_editor.h4
-rw-r--r--editor/animation_track_editor_plugins.cpp4
-rw-r--r--editor/animation_track_editor_plugins.h4
-rw-r--r--editor/array_property_edit.cpp4
-rw-r--r--editor/array_property_edit.h4
-rw-r--r--editor/audio_stream_preview.cpp4
-rw-r--r--editor/audio_stream_preview.h4
-rw-r--r--editor/code_editor.cpp8
-rw-r--r--editor/code_editor.h4
-rw-r--r--editor/connections_dialog.cpp288
-rw-r--r--editor/connections_dialog.h77
-rw-r--r--editor/create_dialog.cpp4
-rw-r--r--editor/create_dialog.h4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_parser.cpp8
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_parser.h4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_protocol.cpp4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_protocol.h4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_server.cpp4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_server.h4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_types.h4
-rw-r--r--editor/debugger/editor_debugger_inspector.cpp4
-rw-r--r--editor/debugger/editor_debugger_inspector.h4
-rw-r--r--editor/debugger/editor_debugger_node.cpp4
-rw-r--r--editor/debugger/editor_debugger_node.h4
-rw-r--r--editor/debugger/editor_debugger_server.cpp4
-rw-r--r--editor/debugger/editor_debugger_server.h4
-rw-r--r--editor/debugger/editor_debugger_tree.cpp4
-rw-r--r--editor/debugger/editor_debugger_tree.h4
-rw-r--r--editor/debugger/editor_network_profiler.cpp4
-rw-r--r--editor/debugger/editor_network_profiler.h4
-rw-r--r--editor/debugger/editor_performance_profiler.cpp4
-rw-r--r--editor/debugger/editor_performance_profiler.h4
-rw-r--r--editor/debugger/editor_profiler.cpp6
-rw-r--r--editor/debugger/editor_profiler.h4
-rw-r--r--editor/debugger/editor_visual_profiler.cpp6
-rw-r--r--editor/debugger/editor_visual_profiler.h4
-rw-r--r--editor/debugger/script_editor_debugger.cpp4
-rw-r--r--editor/debugger/script_editor_debugger.h4
-rw-r--r--editor/dependency_editor.cpp4
-rw-r--r--editor/dependency_editor.h4
-rw-r--r--editor/dictionary_property_edit.cpp4
-rw-r--r--editor/dictionary_property_edit.h4
-rw-r--r--editor/doc_tools.cpp4
-rw-r--r--editor/doc_tools.h4
-rw-r--r--editor/editor_about.cpp6
-rw-r--r--editor/editor_about.h4
-rw-r--r--editor/editor_asset_installer.cpp8
-rw-r--r--editor/editor_asset_installer.h4
-rw-r--r--editor/editor_atlas_packer.cpp4
-rw-r--r--editor/editor_atlas_packer.h4
-rw-r--r--editor/editor_audio_buses.cpp4
-rw-r--r--editor/editor_audio_buses.h4
-rw-r--r--editor/editor_autoload_settings.cpp4
-rw-r--r--editor/editor_autoload_settings.h4
-rw-r--r--editor/editor_command_palette.cpp4
-rw-r--r--editor/editor_command_palette.h4
-rw-r--r--editor/editor_data.cpp4
-rw-r--r--editor/editor_data.h4
-rw-r--r--editor/editor_dir_dialog.cpp4
-rw-r--r--editor/editor_dir_dialog.h4
-rw-r--r--editor/editor_export.cpp13
-rw-r--r--editor/editor_export.h9
-rw-r--r--editor/editor_feature_profile.cpp4
-rw-r--r--editor/editor_feature_profile.h4
-rw-r--r--editor/editor_file_dialog.cpp6
-rw-r--r--editor/editor_file_dialog.h4
-rw-r--r--editor/editor_file_system.cpp4
-rw-r--r--editor/editor_file_system.h4
-rw-r--r--editor/editor_folding.cpp4
-rw-r--r--editor/editor_folding.h4
-rw-r--r--editor/editor_fonts.cpp8
-rw-r--r--editor/editor_fonts.h4
-rw-r--r--editor/editor_help.cpp54
-rw-r--r--editor/editor_help.h13
-rw-r--r--editor/editor_help_search.cpp4
-rw-r--r--editor/editor_help_search.h4
-rw-r--r--editor/editor_inspector.cpp26
-rw-r--r--editor/editor_inspector.h4
-rw-r--r--editor/editor_layouts_dialog.cpp4
-rw-r--r--editor/editor_layouts_dialog.h4
-rw-r--r--editor/editor_log.cpp6
-rw-r--r--editor/editor_log.h4
-rw-r--r--editor/editor_native_shader_source_visualizer.cpp4
-rw-r--r--editor/editor_native_shader_source_visualizer.h4
-rw-r--r--editor/editor_node.cpp29
-rw-r--r--editor/editor_node.h6
-rw-r--r--editor/editor_path.cpp4
-rw-r--r--editor/editor_path.h4
-rw-r--r--editor/editor_paths.cpp4
-rw-r--r--editor/editor_paths.h4
-rw-r--r--editor/editor_plugin.cpp4
-rw-r--r--editor/editor_plugin.h4
-rw-r--r--editor/editor_plugin_settings.cpp4
-rw-r--r--editor/editor_plugin_settings.h4
-rw-r--r--editor/editor_properties.cpp11
-rw-r--r--editor/editor_properties.h6
-rw-r--r--editor/editor_properties_array_dict.cpp4
-rw-r--r--editor/editor_properties_array_dict.h4
-rw-r--r--editor/editor_resource_picker.cpp56
-rw-r--r--editor/editor_resource_picker.h7
-rw-r--r--editor/editor_resource_preview.cpp4
-rw-r--r--editor/editor_resource_preview.h4
-rw-r--r--editor/editor_run.cpp4
-rw-r--r--editor/editor_run.h4
-rw-r--r--editor/editor_run_native.cpp4
-rw-r--r--editor/editor_run_native.h4
-rw-r--r--editor/editor_run_script.cpp4
-rw-r--r--editor/editor_run_script.h4
-rw-r--r--editor/editor_scale.cpp4
-rw-r--r--editor/editor_scale.h4
-rw-r--r--editor/editor_sectioned_inspector.cpp4
-rw-r--r--editor/editor_sectioned_inspector.h4
-rw-r--r--editor/editor_settings.cpp52
-rw-r--r--editor/editor_settings.h4
-rw-r--r--editor/editor_spin_slider.cpp4
-rw-r--r--editor/editor_spin_slider.h4
-rw-r--r--editor/editor_themes.cpp6
-rw-r--r--editor/editor_themes.h4
-rw-r--r--editor/editor_toaster.cpp4
-rw-r--r--editor/editor_toaster.h4
-rw-r--r--editor/editor_translation.cpp4
-rw-r--r--editor/editor_translation.h4
-rw-r--r--editor/editor_translation_parser.cpp4
-rw-r--r--editor/editor_translation_parser.h4
-rw-r--r--editor/editor_vcs_interface.cpp4
-rw-r--r--editor/editor_vcs_interface.h4
-rw-r--r--editor/editor_zoom_widget.cpp4
-rw-r--r--editor/editor_zoom_widget.h4
-rw-r--r--editor/export_template_manager.cpp10
-rw-r--r--editor/export_template_manager.h4
-rw-r--r--editor/fileserver/editor_file_server.cpp4
-rw-r--r--editor/fileserver/editor_file_server.h4
-rw-r--r--editor/filesystem_dock.cpp6
-rw-r--r--editor/filesystem_dock.h4
-rw-r--r--editor/find_in_files.cpp4
-rw-r--r--editor/find_in_files.h4
-rw-r--r--editor/groups_editor.cpp4
-rw-r--r--editor/groups_editor.h4
-rw-r--r--editor/import/collada.cpp4
-rw-r--r--editor/import/collada.h4
-rw-r--r--editor/import/dynamicfont_import_settings.cpp144
-rw-r--r--editor/import/dynamicfont_import_settings.h19
-rw-r--r--editor/import/editor_import_collada.cpp8
-rw-r--r--editor/import/editor_import_collada.h8
-rw-r--r--editor/import/editor_import_plugin.cpp4
-rw-r--r--editor/import/editor_import_plugin.h4
-rw-r--r--editor/import/resource_importer_bitmask.cpp4
-rw-r--r--editor/import/resource_importer_bitmask.h4
-rw-r--r--editor/import/resource_importer_bmfont.cpp4
-rw-r--r--editor/import/resource_importer_bmfont.h4
-rw-r--r--editor/import/resource_importer_csv_translation.cpp4
-rw-r--r--editor/import/resource_importer_csv_translation.h4
-rw-r--r--editor/import/resource_importer_dynamicfont.cpp7
-rw-r--r--editor/import/resource_importer_dynamicfont.h4
-rw-r--r--editor/import/resource_importer_image.cpp4
-rw-r--r--editor/import/resource_importer_image.h4
-rw-r--r--editor/import/resource_importer_imagefont.cpp4
-rw-r--r--editor/import/resource_importer_imagefont.h4
-rw-r--r--editor/import/resource_importer_layered_texture.cpp6
-rw-r--r--editor/import/resource_importer_layered_texture.h4
-rw-r--r--editor/import/resource_importer_obj.cpp8
-rw-r--r--editor/import/resource_importer_obj.h8
-rw-r--r--editor/import/resource_importer_scene.cpp108
-rw-r--r--editor/import/resource_importer_scene.h25
-rw-r--r--editor/import/resource_importer_shader_file.cpp4
-rw-r--r--editor/import/resource_importer_shader_file.h4
-rw-r--r--editor/import/resource_importer_texture.cpp4
-rw-r--r--editor/import/resource_importer_texture.h4
-rw-r--r--editor/import/resource_importer_texture_atlas.cpp4
-rw-r--r--editor/import/resource_importer_texture_atlas.h4
-rw-r--r--editor/import/resource_importer_wav.cpp4
-rw-r--r--editor/import/resource_importer_wav.h4
-rw-r--r--editor/import/scene_import_settings.cpp4
-rw-r--r--editor/import/scene_import_settings.h4
-rw-r--r--editor/import_defaults_editor.cpp4
-rw-r--r--editor/import_defaults_editor.h4
-rw-r--r--editor/import_dock.cpp36
-rw-r--r--editor/import_dock.h7
-rw-r--r--editor/inspector_dock.cpp4
-rw-r--r--editor/inspector_dock.h5
-rw-r--r--editor/localization_editor.cpp4
-rw-r--r--editor/localization_editor.h4
-rw-r--r--editor/multi_node_edit.cpp4
-rw-r--r--editor/multi_node_edit.h4
-rw-r--r--editor/node_dock.cpp5
-rw-r--r--editor/node_dock.h7
-rw-r--r--editor/plugin_config_dialog.cpp58
-rw-r--r--editor/plugin_config_dialog.h4
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.cpp4
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.h4
-rw-r--r--editor/plugins/animation_blend_space_1d_editor.cpp4
-rw-r--r--editor/plugins/animation_blend_space_1d_editor.h4
-rw-r--r--editor/plugins/animation_blend_space_2d_editor.cpp4
-rw-r--r--editor/plugins/animation_blend_space_2d_editor.h4
-rw-r--r--editor/plugins/animation_blend_tree_editor_plugin.cpp4
-rw-r--r--editor/plugins/animation_blend_tree_editor_plugin.h4
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp4
-rw-r--r--editor/plugins/animation_player_editor_plugin.h4
-rw-r--r--editor/plugins/animation_state_machine_editor.cpp4
-rw-r--r--editor/plugins/animation_state_machine_editor.h4
-rw-r--r--editor/plugins/animation_tree_editor_plugin.cpp4
-rw-r--r--editor/plugins/animation_tree_editor_plugin.h4
-rw-r--r--editor/plugins/asset_library_editor_plugin.cpp6
-rw-r--r--editor/plugins/asset_library_editor_plugin.h4
-rw-r--r--editor/plugins/audio_stream_editor_plugin.cpp4
-rw-r--r--editor/plugins/audio_stream_editor_plugin.h4
-rw-r--r--editor/plugins/camera_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/camera_3d_editor_plugin.h4
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp18
-rw-r--r--editor/plugins/canvas_item_editor_plugin.h4
-rw-r--r--editor/plugins/collision_polygon_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/collision_polygon_2d_editor_plugin.h4
-rw-r--r--editor/plugins/collision_polygon_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/collision_polygon_3d_editor_plugin.h4
-rw-r--r--editor/plugins/collision_shape_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/collision_shape_2d_editor_plugin.h4
-rw-r--r--editor/plugins/cpu_particles_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/cpu_particles_2d_editor_plugin.h4
-rw-r--r--editor/plugins/cpu_particles_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/cpu_particles_3d_editor_plugin.h4
-rw-r--r--editor/plugins/curve_editor_plugin.cpp11
-rw-r--r--editor/plugins/curve_editor_plugin.h4
-rw-r--r--editor/plugins/debugger_editor_plugin.cpp4
-rw-r--r--editor/plugins/debugger_editor_plugin.h4
-rw-r--r--editor/plugins/editor_debugger_plugin.cpp4
-rw-r--r--editor/plugins/editor_debugger_plugin.h4
-rw-r--r--editor/plugins/editor_preview_plugins.cpp10
-rw-r--r--editor/plugins/editor_preview_plugins.h4
-rw-r--r--editor/plugins/font_editor_plugin.cpp4
-rw-r--r--editor/plugins/font_editor_plugin.h4
-rw-r--r--editor/plugins/gpu_particles_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/gpu_particles_2d_editor_plugin.h4
-rw-r--r--editor/plugins/gpu_particles_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/gpu_particles_3d_editor_plugin.h4
-rw-r--r--editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp4
-rw-r--r--editor/plugins/gpu_particles_collision_sdf_editor_plugin.h4
-rw-r--r--editor/plugins/gradient_editor_plugin.cpp4
-rw-r--r--editor/plugins/gradient_editor_plugin.h4
-rw-r--r--editor/plugins/input_event_editor_plugin.cpp4
-rw-r--r--editor/plugins/input_event_editor_plugin.h4
-rw-r--r--editor/plugins/light_occluder_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/light_occluder_2d_editor_plugin.h4
-rw-r--r--editor/plugins/lightmap_gi_editor_plugin.cpp16
-rw-r--r--editor/plugins/lightmap_gi_editor_plugin.h6
-rw-r--r--editor/plugins/line_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/line_2d_editor_plugin.h4
-rw-r--r--editor/plugins/material_editor_plugin.cpp43
-rw-r--r--editor/plugins/material_editor_plugin.h6
-rw-r--r--editor/plugins/mesh_editor_plugin.cpp4
-rw-r--r--editor/plugins/mesh_editor_plugin.h4
-rw-r--r--editor/plugins/mesh_instance_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/mesh_instance_3d_editor_plugin.h4
-rw-r--r--editor/plugins/mesh_library_editor_plugin.cpp4
-rw-r--r--editor/plugins/mesh_library_editor_plugin.h4
-rw-r--r--editor/plugins/multimesh_editor_plugin.cpp4
-rw-r--r--editor/plugins/multimesh_editor_plugin.h4
-rw-r--r--editor/plugins/navigation_polygon_editor_plugin.cpp4
-rw-r--r--editor/plugins/navigation_polygon_editor_plugin.h4
-rw-r--r--editor/plugins/node_3d_editor_gizmos.cpp4
-rw-r--r--editor/plugins/node_3d_editor_gizmos.h4
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp204
-rw-r--r--editor/plugins/node_3d_editor_plugin.h10
-rw-r--r--editor/plugins/occluder_instance_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/occluder_instance_3d_editor_plugin.h4
-rw-r--r--editor/plugins/ot_features_plugin.cpp4
-rw-r--r--editor/plugins/ot_features_plugin.h4
-rw-r--r--editor/plugins/packed_scene_translation_parser_plugin.cpp4
-rw-r--r--editor/plugins/packed_scene_translation_parser_plugin.h4
-rw-r--r--editor/plugins/path_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/path_2d_editor_plugin.h4
-rw-r--r--editor/plugins/path_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/path_3d_editor_plugin.h4
-rw-r--r--editor/plugins/physical_bone_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/physical_bone_3d_editor_plugin.h4
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.h4
-rw-r--r--editor/plugins/resource_preloader_editor_plugin.cpp4
-rw-r--r--editor/plugins/resource_preloader_editor_plugin.h4
-rw-r--r--editor/plugins/root_motion_editor_plugin.cpp4
-rw-r--r--editor/plugins/root_motion_editor_plugin.h4
-rw-r--r--editor/plugins/script_editor_plugin.cpp4
-rw-r--r--editor/plugins/script_editor_plugin.h4
-rw-r--r--editor/plugins/script_text_editor.cpp22
-rw-r--r--editor/plugins/script_text_editor.h4
-rw-r--r--editor/plugins/shader_editor_plugin.cpp17
-rw-r--r--editor/plugins/shader_editor_plugin.h4
-rw-r--r--editor/plugins/shader_file_editor_plugin.cpp4
-rw-r--r--editor/plugins/shader_file_editor_plugin.h4
-rw-r--r--editor/plugins/skeleton_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/skeleton_2d_editor_plugin.h4
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.cpp6
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.h4
-rw-r--r--editor/plugins/skeleton_ik_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/skeleton_ik_3d_editor_plugin.h4
-rw-r--r--editor/plugins/sprite_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/sprite_2d_editor_plugin.h4
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.cpp6
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.h4
-rw-r--r--editor/plugins/style_box_editor_plugin.cpp4
-rw-r--r--editor/plugins/style_box_editor_plugin.h4
-rw-r--r--editor/plugins/sub_viewport_preview_editor_plugin.cpp4
-rw-r--r--editor/plugins/sub_viewport_preview_editor_plugin.h4
-rw-r--r--editor/plugins/text_control_editor_plugin.cpp203
-rw-r--r--editor/plugins/text_control_editor_plugin.h6
-rw-r--r--editor/plugins/text_editor.cpp4
-rw-r--r--editor/plugins/text_editor.h4
-rw-r--r--editor/plugins/texture_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/texture_3d_editor_plugin.h4
-rw-r--r--editor/plugins/texture_editor_plugin.cpp6
-rw-r--r--editor/plugins/texture_editor_plugin.h4
-rw-r--r--editor/plugins/texture_layered_editor_plugin.cpp4
-rw-r--r--editor/plugins/texture_layered_editor_plugin.h4
-rw-r--r--editor/plugins/texture_region_editor_plugin.cpp4
-rw-r--r--editor/plugins/texture_region_editor_plugin.h4
-rw-r--r--editor/plugins/theme_editor_plugin.cpp524
-rw-r--r--editor/plugins/theme_editor_plugin.h18
-rw-r--r--editor/plugins/theme_editor_preview.cpp10
-rw-r--r--editor/plugins/theme_editor_preview.h4
-rw-r--r--editor/plugins/tiles/atlas_merging_dialog.cpp6
-rw-r--r--editor/plugins/tiles/atlas_merging_dialog.h4
-rw-r--r--editor/plugins/tiles/tile_atlas_view.cpp4
-rw-r--r--editor/plugins/tiles/tile_atlas_view.h4
-rw-r--r--editor/plugins/tiles/tile_data_editors.cpp4
-rw-r--r--editor/plugins/tiles/tile_data_editors.h4
-rw-r--r--editor/plugins/tiles/tile_map_editor.cpp4
-rw-r--r--editor/plugins/tiles/tile_map_editor.h4
-rw-r--r--editor/plugins/tiles/tile_proxies_manager_dialog.cpp4
-rw-r--r--editor/plugins/tiles/tile_proxies_manager_dialog.h4
-rw-r--r--editor/plugins/tiles/tile_set_atlas_source_editor.cpp4
-rw-r--r--editor/plugins/tiles/tile_set_atlas_source_editor.h4
-rw-r--r--editor/plugins/tiles/tile_set_editor.cpp4
-rw-r--r--editor/plugins/tiles/tile_set_editor.h4
-rw-r--r--editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp4
-rw-r--r--editor/plugins/tiles/tile_set_scenes_collection_source_editor.h4
-rw-r--r--editor/plugins/tiles/tiles_editor_plugin.cpp15
-rw-r--r--editor/plugins/tiles/tiles_editor_plugin.h4
-rw-r--r--editor/plugins/version_control_editor_plugin.cpp4
-rw-r--r--editor/plugins/version_control_editor_plugin.h4
-rw-r--r--editor/plugins/visual_shader_editor_plugin.cpp417
-rw-r--r--editor/plugins/visual_shader_editor_plugin.h80
-rw-r--r--editor/plugins/voxel_gi_editor_plugin.cpp4
-rw-r--r--editor/plugins/voxel_gi_editor_plugin.h4
-rw-r--r--editor/pot_generator.cpp4
-rw-r--r--editor/pot_generator.h4
-rw-r--r--editor/progress_dialog.cpp4
-rw-r--r--editor/progress_dialog.h4
-rw-r--r--editor/project_export.cpp26
-rw-r--r--editor/project_export.h5
-rw-r--r--editor/project_manager.cpp14
-rw-r--r--editor/project_manager.h4
-rw-r--r--editor/project_settings_editor.cpp4
-rw-r--r--editor/project_settings_editor.h4
-rw-r--r--editor/property_editor.cpp6
-rw-r--r--editor/property_editor.h4
-rw-r--r--editor/property_selector.cpp4
-rw-r--r--editor/property_selector.h4
-rw-r--r--editor/quick_open.cpp4
-rw-r--r--editor/quick_open.h4
-rw-r--r--editor/register_exporters.h4
-rw-r--r--editor/rename_dialog.cpp4
-rw-r--r--editor/rename_dialog.h4
-rw-r--r--editor/reparent_dialog.cpp4
-rw-r--r--editor/reparent_dialog.h4
-rw-r--r--editor/scene_tree_dock.cpp18
-rw-r--r--editor/scene_tree_dock.h5
-rw-r--r--editor/scene_tree_editor.cpp4
-rw-r--r--editor/scene_tree_editor.h4
-rw-r--r--editor/script_create_dialog.cpp579
-rw-r--r--editor/script_create_dialog.h37
-rw-r--r--editor/settings_config_dialog.cpp4
-rw-r--r--editor/settings_config_dialog.h4
-rw-r--r--editor/shader_create_dialog.cpp4
-rw-r--r--editor/shader_create_dialog.h4
-rw-r--r--editor/shader_globals_editor.cpp4
-rw-r--r--editor/shader_globals_editor.h4
-rw-r--r--editor/template_builders.py95
-rw-r--r--editor/translations/af.po263
-rw-r--r--editor/translations/ar.po281
-rw-r--r--editor/translations/az.po256
-rw-r--r--editor/translations/bg.po279
-rw-r--r--editor/translations/bn.po273
-rw-r--r--editor/translations/br.po247
-rw-r--r--editor/translations/ca.po283
-rw-r--r--editor/translations/cs.po384
-rw-r--r--editor/translations/da.po270
-rw-r--r--editor/translations/de.po281
-rw-r--r--editor/translations/editor.pot241
-rw-r--r--editor/translations/el.po275
-rw-r--r--editor/translations/eo.po268
-rw-r--r--editor/translations/es.po272
-rw-r--r--editor/translations/es_AR.po269
-rw-r--r--editor/translations/et.po263
-rw-r--r--editor/translations/eu.po256
-rwxr-xr-xeditor/translations/extract.py4
-rw-r--r--editor/translations/fa.po270
-rw-r--r--editor/translations/fi.po271
-rw-r--r--editor/translations/fil.po255
-rw-r--r--editor/translations/fr.po282
-rw-r--r--editor/translations/ga.po241
-rw-r--r--editor/translations/gl.po270
-rw-r--r--editor/translations/he.po269
-rw-r--r--editor/translations/hi.po269
-rw-r--r--editor/translations/hr.po264
-rw-r--r--editor/translations/hu.po279
-rw-r--r--editor/translations/id.po274
-rw-r--r--editor/translations/is.po255
-rw-r--r--editor/translations/it.po401
-rw-r--r--editor/translations/ja.po270
-rw-r--r--editor/translations/ka.po262
-rw-r--r--editor/translations/km.po245
-rw-r--r--editor/translations/ko.po268
-rw-r--r--editor/translations/lt.po267
-rw-r--r--editor/translations/lv.po266
-rw-r--r--editor/translations/mi.po241
-rw-r--r--editor/translations/mk.po248
-rw-r--r--editor/translations/ml.po249
-rw-r--r--editor/translations/mr.po247
-rw-r--r--editor/translations/ms.po269
-rw-r--r--editor/translations/nb.po300
-rw-r--r--editor/translations/nl.po285
-rw-r--r--editor/translations/or.po241
-rw-r--r--editor/translations/pl.po298
-rw-r--r--editor/translations/pr.po259
-rw-r--r--editor/translations/pt.po307
-rw-r--r--editor/translations/pt_BR.po353
-rw-r--r--editor/translations/ro.po272
-rw-r--r--editor/translations/ru.po268
-rw-r--r--editor/translations/si.po253
-rw-r--r--editor/translations/sk.po270
-rw-r--r--editor/translations/sl.po265
-rw-r--r--editor/translations/sq.po263
-rw-r--r--editor/translations/sr_Cyrl.po275
-rw-r--r--editor/translations/sr_Latn.po256
-rw-r--r--editor/translations/sv.po267
-rw-r--r--editor/translations/ta.po254
-rw-r--r--editor/translations/te.po265
-rw-r--r--editor/translations/th.po273
-rw-r--r--editor/translations/tl.po495
-rw-r--r--editor/translations/tr.po289
-rw-r--r--editor/translations/tt.po241
-rw-r--r--editor/translations/tzm.po241
-rw-r--r--editor/translations/uk.po272
-rw-r--r--editor/translations/ur_PK.po251
-rw-r--r--editor/translations/vi.po273
-rw-r--r--editor/translations/zh_CN.po286
-rw-r--r--editor/translations/zh_HK.po270
-rw-r--r--editor/translations/zh_TW.po268
452 files changed, 18531 insertions, 5549 deletions
diff --git a/editor/action_map_editor.cpp b/editor/action_map_editor.cpp
index a8d3bfcc90..eabe0a95e2 100644
--- a/editor/action_map_editor.cpp
+++ b/editor/action_map_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/action_map_editor.h b/editor/action_map_editor.h
index e55cab3510..cf2d871469 100644
--- a/editor/action_map_editor.h
+++ b/editor/action_map_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp
index 9682fb07d2..1085d34c4e 100644
--- a/editor/animation_bezier_editor.cpp
+++ b/editor/animation_bezier_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/animation_bezier_editor.h b/editor/animation_bezier_editor.h
index 4b46777cfe..d9bc85a258 100644
--- a/editor/animation_bezier_editor.h
+++ b/editor/animation_bezier_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp
index e7251662b7..f4e719f552 100644
--- a/editor/animation_track_editor.cpp
+++ b/editor/animation_track_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -3390,7 +3390,7 @@ Dictionary AnimationTrackEditor::get_state() const {
state["fps_mode"] = timeline->is_using_fps();
state["zoom"] = zoom->get_value();
state["offset"] = timeline->get_value();
- state["v_scroll"] = scroll->get_v_scrollbar()->get_value();
+ state["v_scroll"] = scroll->get_v_scroll_bar()->get_value();
return state;
}
@@ -3418,9 +3418,9 @@ void AnimationTrackEditor::set_state(const Dictionary &p_state) {
timeline->set_value(0);
}
if (p_state.has("v_scroll")) {
- scroll->get_v_scrollbar()->set_value(p_state["v_scroll"]);
+ scroll->get_v_scroll_bar()->set_value(p_state["v_scroll"]);
} else {
- scroll->get_v_scrollbar()->set_value(0);
+ scroll->get_v_scroll_bar()->set_value(0);
}
}
@@ -6091,7 +6091,7 @@ AnimationTrackEditor::AnimationTrackEditor() {
scroll = memnew(ScrollContainer);
timeline_vbox->add_child(scroll);
scroll->set_v_size_flags(SIZE_EXPAND_FILL);
- VScrollBar *sb = scroll->get_v_scrollbar();
+ VScrollBar *sb = scroll->get_v_scroll_bar();
scroll->remove_child(sb);
timeline_scroll->add_child(sb); // Move here so timeline and tracks are always aligned.
scroll->connect("gui_input", callable_mp(this, &AnimationTrackEditor::_scroll_input));
diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h
index 5ebfd26322..b5d44bc0d3 100644
--- a/editor/animation_track_editor.h
+++ b/editor/animation_track_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp
index 3c117f28a8..a6d2225bdc 100644
--- a/editor/animation_track_editor_plugins.cpp
+++ b/editor/animation_track_editor_plugins.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/animation_track_editor_plugins.h b/editor/animation_track_editor_plugins.h
index a362422c2b..271c1a000b 100644
--- a/editor/animation_track_editor_plugins.h
+++ b/editor/animation_track_editor_plugins.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/array_property_edit.cpp b/editor/array_property_edit.cpp
index 09defac354..d9c6b72241 100644
--- a/editor/array_property_edit.cpp
+++ b/editor/array_property_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/array_property_edit.h b/editor/array_property_edit.h
index d7e11936a3..a620b230cd 100644
--- a/editor/array_property_edit.h
+++ b/editor/array_property_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/audio_stream_preview.cpp b/editor/audio_stream_preview.cpp
index 2efcdcda31..81a6f78415 100644
--- a/editor/audio_stream_preview.cpp
+++ b/editor/audio_stream_preview.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/audio_stream_preview.h b/editor/audio_stream_preview.h
index 8b83235b35..bcd80a7c03 100644
--- a/editor/audio_stream_preview.h
+++ b/editor/audio_stream_preview.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index c024c909a3..4669e56e20 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -1548,7 +1548,9 @@ void CodeTextEditor::set_error_pos(int p_line, int p_column) {
void CodeTextEditor::goto_error() {
if (!error->get_text().is_empty()) {
- text_editor->unfold_line(error_line);
+ if (text_editor->get_line_count() != error_line) {
+ text_editor->unfold_line(error_line);
+ }
text_editor->set_caret_line(error_line);
text_editor->set_caret_column(error_column);
text_editor->center_viewport_to_caret();
diff --git a/editor/code_editor.h b/editor/code_editor.h
index 6e3bd88112..a385ae2287 100644
--- a/editor/code_editor.h
+++ b/editor/code_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp
index 4945414237..0edbb182e1 100644
--- a/editor/connections_dialog.cpp
+++ b/editor/connections_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -38,6 +38,7 @@
#include "plugins/script_editor_plugin.h"
#include "scene/gui/label.h"
#include "scene/gui/popup_menu.h"
+#include "scene/gui/spin_box.h"
static Node *_find_first_script(Node *p_root, Node *p_node) {
if (p_node != p_root && p_node->get_owner() != p_root) {
@@ -164,6 +165,20 @@ void ConnectDialog::_tree_node_selected() {
_update_ok_enabled();
}
+void ConnectDialog::_unbind_count_changed(double p_count) {
+ for (Control *control : bind_controls) {
+ BaseButton *b = Object::cast_to<BaseButton>(control);
+ if (b) {
+ b->set_disabled(p_count > 0);
+ }
+
+ EditorInspector *e = Object::cast_to<EditorInspector>(control);
+ if (e) {
+ e->set_read_only(p_count > 0);
+ }
+ }
+}
+
/*
* Adds a new parameter bind to connection.
*/
@@ -305,6 +320,10 @@ void ConnectDialog::set_dst_method(const StringName &p_method) {
dst_method->set_text(p_method);
}
+int ConnectDialog::get_unbinds() const {
+ return int(unbind_count->get_value());
+}
+
Vector<Variant> ConnectDialog::get_binds() const {
return cdbinds->params;
}
@@ -321,7 +340,7 @@ bool ConnectDialog::get_oneshot() const {
* Returns true if ConnectDialog is being used to edit an existing connection.
*/
bool ConnectDialog::is_editing() const {
- return bEditMode;
+ return edit_mode;
}
/*
@@ -329,33 +348,35 @@ bool ConnectDialog::is_editing() const {
* If creating a connection from scratch, sensible defaults are used.
* If editing an existing connection, previous data is retained.
*/
-void ConnectDialog::init(ConnectionData c, bool bEdit) {
+void ConnectDialog::init(ConnectionData p_cd, bool p_edit) {
set_hide_on_ok(false);
- source = static_cast<Node *>(c.source);
- signal = c.signal;
+ source = static_cast<Node *>(p_cd.source);
+ signal = p_cd.signal;
tree->set_selected(nullptr);
tree->set_marked(source, true);
- if (c.target) {
- set_dst_node(static_cast<Node *>(c.target));
- set_dst_method(c.method);
+ if (p_cd.target) {
+ set_dst_node(static_cast<Node *>(p_cd.target));
+ set_dst_method(p_cd.method);
}
_update_ok_enabled();
- bool bDeferred = (c.flags & CONNECT_DEFERRED) == CONNECT_DEFERRED;
- bool bOneshot = (c.flags & CONNECT_ONESHOT) == CONNECT_ONESHOT;
+ bool b_deferred = (p_cd.flags & CONNECT_DEFERRED) == CONNECT_DEFERRED;
+ bool b_oneshot = (p_cd.flags & CONNECT_ONESHOT) == CONNECT_ONESHOT;
- deferred->set_pressed(bDeferred);
- oneshot->set_pressed(bOneshot);
+ deferred->set_pressed(b_deferred);
+ oneshot->set_pressed(b_oneshot);
+ unbind_count->set_value(p_cd.unbinds);
+ _unbind_count_changed(p_cd.unbinds);
cdbinds->params.clear();
- cdbinds->params = c.binds;
+ cdbinds->params = p_cd.binds;
cdbinds->notify_changed();
- bEditMode = bEdit;
+ edit_mode = p_edit;
}
void ConnectDialog::popup_dialog(const String &p_for_signal) {
@@ -449,23 +470,33 @@ ConnectDialog::ConnectDialog() {
type_list->add_item("Transform3D", Variant::TRANSFORM3D);
type_list->add_item("Color", Variant::COLOR);
type_list->select(0);
+ bind_controls.push_back(type_list);
Button *add_bind = memnew(Button);
add_bind->set_text(TTR("Add"));
add_bind_hb->add_child(add_bind);
add_bind->connect("pressed", callable_mp(this, &ConnectDialog::_add_bind));
+ bind_controls.push_back(add_bind);
Button *del_bind = memnew(Button);
del_bind->set_text(TTR("Remove"));
add_bind_hb->add_child(del_bind);
del_bind->connect("pressed", callable_mp(this, &ConnectDialog::_remove_bind));
+ bind_controls.push_back(del_bind);
vbc_right->add_margin_child(TTR("Add Extra Call Argument:"), add_bind_hb);
bind_editor = memnew(EditorInspector);
+ bind_controls.push_back(bind_editor);
vbc_right->add_margin_child(TTR("Extra Call Arguments:"), bind_editor, true);
+ unbind_count = memnew(SpinBox);
+ unbind_count->set_tooltip(TTR("Allows to drop arguments sent by signal emitter."));
+ unbind_count->connect("value_changed", callable_mp(this, &ConnectDialog::_unbind_count_changed));
+
+ vbc_right->add_margin_child(TTR("Unbind Signal Arguments:"), unbind_count);
+
HBoxContainer *dstm_hb = memnew(HBoxContainer);
vbc_left->add_margin_child(TTR("Receiver Method:"), dstm_hb);
@@ -515,7 +546,7 @@ Control *ConnectionsDockTree::make_custom_tooltip(const String &p_text) const {
String text = TTR("Signal:") + " [u][b]" + p_text.get_slice("::", 0) + "[/b][/u]";
text += p_text.get_slice("::", 1).strip_edges() + "\n";
text += p_text.get_slice("::", 2).strip_edges();
- help_bit->call_deferred(SNAME("set_text"), text); //hack so it uses proper theme once inside scene
+ help_bit->call_deferred(SNAME("set_text"), text); // Hack so it uses proper theme once inside scene.
return help_bit;
}
@@ -538,29 +569,32 @@ void ConnectionsDock::_make_or_edit_connection() {
ERR_FAIL_COND(!it);
NodePath dst_path = connect_dialog->get_dst_path();
- Node *target = selectedNode->get_node(dst_path);
+ Node *target = selected_node->get_node(dst_path);
ERR_FAIL_COND(!target);
- ConnectDialog::ConnectionData cToMake;
- cToMake.source = connect_dialog->get_source();
- cToMake.target = target;
- cToMake.signal = connect_dialog->get_signal_name();
- cToMake.method = connect_dialog->get_dst_method_name();
- cToMake.binds = connect_dialog->get_binds();
- bool defer = connect_dialog->get_deferred();
- bool oshot = connect_dialog->get_oneshot();
- cToMake.flags = CONNECT_PERSIST | (defer ? CONNECT_DEFERRED : 0) | (oshot ? CONNECT_ONESHOT : 0);
+ ConnectDialog::ConnectionData cd;
+ cd.source = connect_dialog->get_source();
+ cd.target = target;
+ cd.signal = connect_dialog->get_signal_name();
+ cd.method = connect_dialog->get_dst_method_name();
+ cd.unbinds = connect_dialog->get_unbinds();
+ if (cd.unbinds == 0) {
+ cd.binds = connect_dialog->get_binds();
+ }
+ bool b_deferred = connect_dialog->get_deferred();
+ bool b_oneshot = connect_dialog->get_oneshot();
+ cd.flags = CONNECT_PERSIST | (b_deferred ? CONNECT_DEFERRED : 0) | (b_oneshot ? CONNECT_ONESHOT : 0);
// Conditions to add function: must have a script and must not have the method already
// (in the class, the script itself, or inherited).
bool add_script_function = false;
Ref<Script> script = target->get_script();
- if (!target->get_script().is_null() && !ClassDB::has_method(target->get_class(), cToMake.method)) {
+ if (!target->get_script().is_null() && !ClassDB::has_method(target->get_class(), cd.method)) {
// There is a chance that the method is inherited from another script.
bool found_inherited_function = false;
Ref<Script> inherited_script = script->get_base_script();
while (!inherited_script.is_null()) {
- int line = inherited_script->get_language()->find_function(cToMake.method, inherited_script->get_source_code());
+ int line = inherited_script->get_language()->find_function(cd.method, inherited_script->get_source_code());
if (line != -1) {
found_inherited_function = true;
break;
@@ -575,23 +609,23 @@ void ConnectionsDock::_make_or_edit_connection() {
if (add_script_function) {
// Pick up args here before "it" is deleted by update_tree.
script_function_args = it->get_metadata(0).operator Dictionary()["args"];
- for (int i = 0; i < cToMake.binds.size(); i++) {
- script_function_args.push_back("extra_arg_" + itos(i) + ":" + Variant::get_type_name(cToMake.binds[i].get_type()));
+ for (int i = 0; i < cd.binds.size(); i++) {
+ script_function_args.push_back("extra_arg_" + itos(i) + ":" + Variant::get_type_name(cd.binds[i].get_type()));
}
}
if (connect_dialog->is_editing()) {
_disconnect(*it);
- _connect(cToMake);
+ _connect(cd);
} else {
- _connect(cToMake);
+ _connect(cd);
}
// IMPORTANT NOTE: _disconnect and _connect cause an update_tree, which will delete the object "it" is pointing to.
it = nullptr;
if (add_script_function) {
- editor->emit_signal(SNAME("script_add_function_request"), target, cToMake.method, script_function_args);
+ editor->emit_signal(SNAME("script_add_function_request"), target, cd.method, script_function_args);
hide();
}
@@ -601,23 +635,21 @@ void ConnectionsDock::_make_or_edit_connection() {
/*
* Creates single connection w/ undo-redo functionality.
*/
-void ConnectionsDock::_connect(ConnectDialog::ConnectionData cToMake) {
- Node *source = static_cast<Node *>(cToMake.source);
- Node *target = static_cast<Node *>(cToMake.target);
+void ConnectionsDock::_connect(ConnectDialog::ConnectionData p_cd) {
+ Node *source = Object::cast_to<Node>(p_cd.source);
+ Node *target = Object::cast_to<Node>(p_cd.target);
if (!source || !target) {
return;
}
- undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"), String(cToMake.signal), String(cToMake.method)));
-
- Callable c(target, cToMake.method);
-
- undo_redo->add_do_method(source, "connect", cToMake.signal, c, cToMake.binds, cToMake.flags);
- undo_redo->add_undo_method(source, "disconnect", cToMake.signal, c);
+ Callable callable = p_cd.get_callable();
+ undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"), String(p_cd.signal), String(p_cd.method)));
+ undo_redo->add_do_method(source, "connect", p_cd.signal, callable, varray(), p_cd.flags);
+ undo_redo->add_undo_method(source, "disconnect", p_cd.signal, callable);
undo_redo->add_do_method(this, "update_tree");
undo_redo->add_undo_method(this, "update_tree");
- undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); //to force redraw of scene tree
+ undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); // To force redraw of scene tree.
undo_redo->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree");
undo_redo->commit_action();
@@ -626,16 +658,17 @@ void ConnectionsDock::_connect(ConnectDialog::ConnectionData cToMake) {
/*
* Break single connection w/ undo-redo functionality.
*/
-void ConnectionsDock::_disconnect(TreeItem &item) {
- Connection cd = item.get_metadata(0);
- ConnectDialog::ConnectionData c = cd;
+void ConnectionsDock::_disconnect(TreeItem &p_item) {
+ Connection connection = p_item.get_metadata(0);
+ ConnectDialog::ConnectionData cd = connection;
- ERR_FAIL_COND(c.source != selectedNode); // Shouldn't happen but... Bugcheck.
+ ERR_FAIL_COND(cd.source != selected_node); // Shouldn't happen but... Bugcheck.
- undo_redo->create_action(vformat(TTR("Disconnect '%s' from '%s'"), c.signal, c.method));
+ undo_redo->create_action(vformat(TTR("Disconnect '%s' from '%s'"), cd.signal, cd.method));
- undo_redo->add_do_method(selectedNode, "disconnect", c.signal, Callable(c.target, c.method));
- undo_redo->add_undo_method(selectedNode, "connect", c.signal, Callable(c.target, c.method), c.binds, c.flags);
+ Callable callable = cd.get_callable();
+ undo_redo->add_do_method(selected_node, "disconnect", cd.signal, callable);
+ undo_redo->add_undo_method(selected_node, "connect", cd.signal, callable, cd.binds, cd.flags);
undo_redo->add_do_method(this, "update_tree");
undo_redo->add_undo_method(this, "update_tree");
undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); // To force redraw of scene tree.
@@ -656,14 +689,14 @@ void ConnectionsDock::_disconnect_all() {
}
TreeItem *child = item->get_first_child();
- String signalName = item->get_metadata(0).operator Dictionary()["name"];
- undo_redo->create_action(vformat(TTR("Disconnect all from signal: '%s'"), signalName));
+ String signal_name = item->get_metadata(0).operator Dictionary()["name"];
+ undo_redo->create_action(vformat(TTR("Disconnect all from signal: '%s'"), signal_name));
while (child) {
- Connection cd = child->get_metadata(0);
- ConnectDialog::ConnectionData c = cd;
- undo_redo->add_do_method(selectedNode, "disconnect", c.signal, Callable(c.target, c.method));
- undo_redo->add_undo_method(selectedNode, "connect", c.signal, Callable(c.target, c.method), c.binds, c.flags);
+ Connection connection = child->get_metadata(0);
+ ConnectDialog::ConnectionData cd = connection;
+ undo_redo->add_do_method(selected_node, "disconnect", cd.signal, cd.get_callable());
+ undo_redo->add_undo_method(selected_node, "connect", cd.signal, cd.get_callable(), cd.binds, cd.flags);
child = child->get_next();
}
@@ -704,100 +737,118 @@ void ConnectionsDock::_tree_item_activated() { // "Activation" on double-click.
}
}
-bool ConnectionsDock::_is_item_signal(TreeItem &item) {
- return (item.get_parent() == tree->get_root() || item.get_parent()->get_parent() == tree->get_root());
+bool ConnectionsDock::_is_item_signal(TreeItem &p_item) {
+ return (p_item.get_parent() == tree->get_root() || p_item.get_parent()->get_parent() == tree->get_root());
}
/*
* Open connection dialog with TreeItem data to CREATE a brand-new connection.
*/
-void ConnectionsDock::_open_connection_dialog(TreeItem &item) {
- String signal = item.get_metadata(0).operator Dictionary()["name"];
- const String &signalname = signal;
- String midname = selectedNode->get_name();
- for (int i = 0; i < midname.length(); i++) { //TODO: Regex filter may be cleaner.
- char32_t c = midname[i];
+void ConnectionsDock::_open_connection_dialog(TreeItem &p_item) {
+ String signal_name = p_item.get_metadata(0).operator Dictionary()["name"];
+ const String &signal_name_ref = signal_name;
+ String node_name = selected_node->get_name();
+ for (int i = 0; i < node_name.length(); i++) { // TODO: Regex filter may be cleaner.
+ char32_t c = node_name[i];
if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_')) {
if (c == ' ') {
// Replace spaces with underlines.
c = '_';
} else {
// Remove any other characters.
- midname.remove_at(i);
+ node_name.remove_at(i);
i--;
continue;
}
}
- midname[i] = c;
+ node_name[i] = c;
}
- Node *dst_node = selectedNode->get_owner() ? selectedNode->get_owner() : selectedNode;
+ Node *dst_node = selected_node->get_owner() ? selected_node->get_owner() : selected_node;
if (!dst_node || dst_node->get_script().is_null()) {
dst_node = _find_first_script(get_tree()->get_edited_scene_root(), get_tree()->get_edited_scene_root());
}
- StringName dst_method = "_on_" + midname + "_" + signal;
+ Dictionary subst;
- ConnectDialog::ConnectionData c;
- c.source = selectedNode;
- c.signal = StringName(signalname);
- c.target = dst_node;
- c.method = dst_method;
- connect_dialog->popup_dialog(signalname);
- connect_dialog->init(c);
+ String s = node_name.capitalize().replace(" ", "");
+ subst["NodeName"] = s;
+ if (!s.is_empty()) {
+ s[0] = s.to_lower()[0];
+ }
+ subst["nodeName"] = s;
+ subst["node_name"] = node_name.capitalize().replace(" ", "_").to_lower();
+
+ s = signal_name.capitalize().replace(" ", "");
+ subst["SignalName"] = s;
+ if (!s.is_empty()) {
+ s[0] = s.to_lower()[0];
+ }
+ subst["signalName"] = s;
+ subst["signal_name"] = signal_name.capitalize().replace(" ", "_").to_lower();
+
+ String dst_method = String(EDITOR_GET("interface/editors/default_signal_callback_name")).format(subst);
+
+ ConnectDialog::ConnectionData cd;
+ cd.source = selected_node;
+ cd.signal = StringName(signal_name_ref);
+ cd.target = dst_node;
+ cd.method = StringName(dst_method);
+ connect_dialog->popup_dialog(signal_name_ref);
+ connect_dialog->init(cd);
connect_dialog->set_title(TTR("Connect a Signal to a Method"));
}
/*
* Open connection dialog with Connection data to EDIT an existing connection.
*/
-void ConnectionsDock::_open_connection_dialog(ConnectDialog::ConnectionData cToEdit) {
- Node *src = static_cast<Node *>(cToEdit.source);
- Node *dst = static_cast<Node *>(cToEdit.target);
+void ConnectionsDock::_open_connection_dialog(ConnectDialog::ConnectionData p_cd) {
+ Node *src = Object::cast_to<Node>(p_cd.source);
+ Node *dst = Object::cast_to<Node>(p_cd.target);
if (src && dst) {
- const String &signalname = cToEdit.signal;
- connect_dialog->set_title(TTR("Edit Connection:") + cToEdit.signal);
- connect_dialog->popup_dialog(signalname);
- connect_dialog->init(cToEdit, true);
+ const String &signal_name_ref = p_cd.signal;
+ connect_dialog->set_title(TTR("Edit Connection:") + p_cd.signal);
+ connect_dialog->popup_dialog(signal_name_ref);
+ connect_dialog->init(p_cd, true);
}
}
/*
* Open slot method location in script editor.
*/
-void ConnectionsDock::_go_to_script(TreeItem &item) {
- if (_is_item_signal(item)) {
+void ConnectionsDock::_go_to_script(TreeItem &p_item) {
+ if (_is_item_signal(p_item)) {
return;
}
- Connection cd = item.get_metadata(0);
- ConnectDialog::ConnectionData c = cd;
- ERR_FAIL_COND(c.source != selectedNode); //shouldn't happen but...bugcheck
+ Connection connection = p_item.get_metadata(0);
+ ConnectDialog::ConnectionData cd = connection;
+ ERR_FAIL_COND(cd.source != selected_node); // Shouldn't happen but... bugcheck.
- if (!c.target) {
+ if (!cd.target) {
return;
}
- Ref<Script> script = c.target->get_script();
+ Ref<Script> script = cd.target->get_script();
if (script.is_null()) {
return;
}
- if (script.is_valid() && ScriptEditor::get_singleton()->script_goto_method(script, c.method)) {
+ if (script.is_valid() && ScriptEditor::get_singleton()->script_goto_method(script, cd.method)) {
editor->call("_editor_select", EditorNode::EDITOR_SCRIPT);
}
}
-void ConnectionsDock::_handle_signal_menu_option(int option) {
+void ConnectionsDock::_handle_signal_menu_option(int p_option) {
TreeItem *item = tree->get_selected();
if (!item) {
return;
}
- switch (option) {
+ switch (p_option) {
case CONNECT: {
_open_connection_dialog(*item);
} break;
@@ -809,17 +860,17 @@ void ConnectionsDock::_handle_signal_menu_option(int option) {
}
}
-void ConnectionsDock::_handle_slot_menu_option(int option) {
+void ConnectionsDock::_handle_slot_menu_option(int p_option) {
TreeItem *item = tree->get_selected();
if (!item) {
return;
}
- switch (option) {
+ switch (p_option) {
case EDIT: {
- Connection c = item->get_metadata(0);
- _open_connection_dialog(c);
+ Connection connection = item->get_metadata(0);
+ _open_connection_dialog(connection);
} break;
case GO_TO_SCRIPT: {
_go_to_script(*item);
@@ -831,14 +882,14 @@ void ConnectionsDock::_handle_slot_menu_option(int option) {
}
}
-void ConnectionsDock::_rmb_pressed(Vector2 position) {
+void ConnectionsDock::_rmb_pressed(Vector2 p_position) {
TreeItem *item = tree->get_selected();
if (!item) {
return;
}
- Vector2 screen_position = tree->get_screen_position() + position;
+ Vector2 screen_position = tree->get_screen_position() + p_position;
if (_is_item_signal(*item)) {
signal_menu->set_position(screen_position);
@@ -881,14 +932,14 @@ void ConnectionsDock::_bind_methods() {
}
void ConnectionsDock::set_node(Node *p_node) {
- selectedNode = p_node;
+ selected_node = p_node;
update_tree();
}
void ConnectionsDock::update_tree() {
tree->clear();
- if (!selectedNode) {
+ if (!selected_node) {
return;
}
@@ -896,10 +947,10 @@ void ConnectionsDock::update_tree() {
List<MethodInfo> node_signals;
- selectedNode->get_signal_list(&node_signals);
+ selected_node->get_signal_list(&node_signals);
bool did_script = false;
- StringName base = selectedNode->get_class();
+ StringName base = selected_node->get_class();
while (base) {
List<MethodInfo> node_signals2;
@@ -908,7 +959,7 @@ void ConnectionsDock::update_tree() {
if (!did_script) {
// Get script signals (including signals from any base scripts).
- Ref<Script> scr = selectedNode->get_script();
+ Ref<Script> scr = selected_node->get_script();
if (scr.is_valid()) {
scr->get_script_signal_list(&node_signals2);
if (scr->get_path().is_resource_file()) {
@@ -1021,44 +1072,45 @@ void ConnectionsDock::update_tree() {
signal_item->set_tooltip(0, String(signal_name) + "::" + signaldesc + "::" + descr);
}
- // List existing connections
+ // List existing connections.
List<Object::Connection> connections;
- selectedNode->get_signal_connection_list(signal_name, &connections);
+ selected_node->get_signal_connection_list(signal_name, &connections);
for (const Object::Connection &F : connections) {
- Connection cn = F;
- if (!(cn.flags & CONNECT_PERSIST)) {
+ Connection connection = F;
+ if (!(connection.flags & CONNECT_PERSIST)) {
continue;
}
- ConnectDialog::ConnectionData c = cn;
+ ConnectDialog::ConnectionData cd = connection;
- Node *target = Object::cast_to<Node>(c.target);
+ Node *target = Object::cast_to<Node>(cd.target);
if (!target) {
continue;
}
- String path = String(selectedNode->get_path_to(target)) + " :: " + c.method + "()";
- if (c.flags & CONNECT_DEFERRED) {
+ String path = String(selected_node->get_path_to(target)) + " :: " + cd.method + "()";
+ if (cd.flags & CONNECT_DEFERRED) {
path += " (deferred)";
}
- if (c.flags & CONNECT_ONESHOT) {
+ if (cd.flags & CONNECT_ONESHOT) {
path += " (oneshot)";
}
- if (c.binds.size()) {
+ if (cd.unbinds > 0) {
+ path += " unbinds(" + itos(cd.unbinds) + ")";
+ } else if (!cd.binds.is_empty()) {
path += " binds(";
- for (int i = 0; i < c.binds.size(); i++) {
+ for (int i = 0; i < cd.binds.size(); i++) {
if (i > 0) {
path += ", ";
}
- path += c.binds[i].operator String();
+ path += cd.binds[i].operator String();
}
path += ")";
}
TreeItem *connection_item = tree->create_item(signal_item);
connection_item->set_text(0, path);
- Connection cd = c;
- connection_item->set_metadata(0, cd);
+ connection_item->set_metadata(0, connection);
connection_item->set_icon(0, get_theme_icon(SNAME("Slot"), SNAME("EditorIcons")));
}
}
@@ -1130,6 +1182,8 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) {
tree->connect("item_rmb_selected", callable_mp(this, &ConnectionsDock::_rmb_pressed));
add_theme_constant_override("separation", 3 * EDSCALE);
+
+ EDITOR_DEF("interface/editors/default_signal_callback_name", "_on_{node_name}_{signal_name}");
}
ConnectionsDock::~ConnectionsDock() {
diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h
index b9911c1cc5..2759c6cfde 100644
--- a/editor/connections_dialog.h
+++ b/editor/connections_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -48,6 +48,7 @@
class PopupMenu;
class ConnectDialogBinds;
+class SpinBox;
class ConnectDialog : public ConfirmationDialog {
GDCLASS(ConnectDialog, ConfirmationDialog);
@@ -59,25 +60,45 @@ public:
StringName signal;
StringName method;
uint32_t flags = 0;
+ int unbinds = 0;
Vector<Variant> binds;
- ConnectionData() {
- }
+ ConnectionData() {}
+
ConnectionData(const Connection &p_connection) {
source = Object::cast_to<Node>(p_connection.signal.get_object());
signal = p_connection.signal.get_name();
target = Object::cast_to<Node>(p_connection.callable.get_object());
- method = p_connection.callable.get_method();
flags = p_connection.flags;
- binds = p_connection.binds;
+
+ Callable base_callable;
+ if (p_connection.callable.is_custom()) {
+ CallableCustomBind *ccb = dynamic_cast<CallableCustomBind *>(p_connection.callable.get_custom());
+ if (ccb) {
+ binds = ccb->get_binds();
+ base_callable = ccb->get_callable();
+ }
+
+ CallableCustomUnbind *ccu = dynamic_cast<CallableCustomUnbind *>(p_connection.callable.get_custom());
+ if (ccu) {
+ unbinds = ccu->get_unbinds();
+ base_callable = ccu->get_callable();
+ }
+ } else {
+ base_callable = p_connection.callable;
+ }
+ method = base_callable.get_method();
}
- operator Connection() {
- Connection c;
- c.signal = ::Signal(source, signal);
- c.callable = Callable(target, method);
- c.flags = flags;
- c.binds = binds;
- return c;
+
+ Callable get_callable() {
+ if (unbinds > 0) {
+ return Callable(target, method).unbind(unbinds);
+ } else if (!binds.is_empty()) {
+ const Variant *args = binds.ptr();
+ return Callable(target, method).bind(&args, binds.size());
+ } else {
+ return Callable(target, method);
+ }
}
};
@@ -88,25 +109,28 @@ private:
StringName signal;
LineEdit *dst_method;
ConnectDialogBinds *cdbinds;
- bool bEditMode;
+ bool edit_mode;
NodePath dst_path;
VBoxContainer *vbc_right;
SceneTreeEditor *tree;
AcceptDialog *error;
+ SpinBox *unbind_count;
EditorInspector *bind_editor;
OptionButton *type_list;
CheckBox *deferred;
CheckBox *oneshot;
CheckButton *advanced;
+ Vector<Control *> bind_controls;
Label *error_label;
void ok_pressed() override;
void _cancel_pressed();
void _item_activated();
- void _text_submitted(const String &_text);
+ void _text_submitted(const String &p_text);
void _tree_node_selected();
+ void _unbind_count_changed(double p_count);
void _add_bind();
void _remove_bind();
void _advanced_pressed();
@@ -123,13 +147,14 @@ public:
void set_dst_node(Node *p_node);
StringName get_dst_method_name() const;
void set_dst_method(const StringName &p_method);
+ int get_unbinds() const;
Vector<Variant> get_binds() const;
bool get_deferred() const;
bool get_oneshot() const;
bool is_editing() const;
- void init(ConnectionData c, bool bEdit = false);
+ void init(ConnectionData p_cd, bool p_edit = false);
void popup_dialog(const String &p_for_signal);
ConnectDialog();
@@ -159,7 +184,7 @@ class ConnectionsDock : public VBoxContainer {
DISCONNECT
};
- Node *selectedNode;
+ Node *selected_node;
ConnectionsDockTree *tree;
EditorNode *editor;
@@ -176,21 +201,21 @@ class ConnectionsDock : public VBoxContainer {
void _filter_changed(const String &p_text);
void _make_or_edit_connection();
- void _connect(ConnectDialog::ConnectionData cToMake);
- void _disconnect(TreeItem &item);
+ void _connect(ConnectDialog::ConnectionData p_cd);
+ void _disconnect(TreeItem &p_item);
void _disconnect_all();
void _tree_item_selected();
void _tree_item_activated();
- bool _is_item_signal(TreeItem &item);
+ bool _is_item_signal(TreeItem &p_item);
- void _open_connection_dialog(TreeItem &item);
- void _open_connection_dialog(ConnectDialog::ConnectionData cToEdit);
- void _go_to_script(TreeItem &item);
+ void _open_connection_dialog(TreeItem &p_item);
+ void _open_connection_dialog(ConnectDialog::ConnectionData p_cd);
+ void _go_to_script(TreeItem &p_item);
- void _handle_signal_menu_option(int option);
- void _handle_slot_menu_option(int option);
- void _rmb_pressed(Vector2 position);
+ void _handle_signal_menu_option(int p_option);
+ void _handle_slot_menu_option(int p_option);
+ void _rmb_pressed(Vector2 p_position);
void _close();
protected:
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index 6bf14df8a1..608eab9a9f 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/create_dialog.h b/editor/create_dialog.h
index b08cb72f14..c36730c4f0 100644
--- a/editor/create_dialog.h
+++ b/editor/create_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/debug_adapter/debug_adapter_parser.cpp b/editor/debugger/debug_adapter/debug_adapter_parser.cpp
index 485d58f4a3..ff4051fc67 100644
--- a/editor/debugger/debug_adapter/debug_adapter_parser.cpp
+++ b/editor/debugger/debug_adapter/debug_adapter_parser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -109,7 +109,7 @@ Dictionary DebugAdapterParser::prepare_error_response(const Dictionary &p_params
case DAP::ErrorType::UNKNOWN:
default:
error = "unknown";
- error_desc = "An unknown error has ocurred when processing the request.";
+ error_desc = "An unknown error has occurred when processing the request.";
break;
}
@@ -412,7 +412,7 @@ Dictionary DebugAdapterParser::req_scopes(const Dictionary &p_params) const {
}
Dictionary DebugAdapterParser::req_variables(const Dictionary &p_params) const {
- // If _remaining_vars > 0, the debugee is still sending a stack dump to the editor.
+ // If _remaining_vars > 0, the debuggee is still sending a stack dump to the editor.
if (DebugAdapterProtocol::get_singleton()->_remaining_vars > 0) {
return Dictionary();
}
diff --git a/editor/debugger/debug_adapter/debug_adapter_parser.h b/editor/debugger/debug_adapter/debug_adapter_parser.h
index 4c93464e39..f458151e17 100644
--- a/editor/debugger/debug_adapter/debug_adapter_parser.h
+++ b/editor/debugger/debug_adapter/debug_adapter_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/debug_adapter/debug_adapter_protocol.cpp b/editor/debugger/debug_adapter/debug_adapter_protocol.cpp
index 36fbf8adf1..babe8af8bc 100644
--- a/editor/debugger/debug_adapter/debug_adapter_protocol.cpp
+++ b/editor/debugger/debug_adapter/debug_adapter_protocol.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/debug_adapter/debug_adapter_protocol.h b/editor/debugger/debug_adapter/debug_adapter_protocol.h
index d4291992bf..b54a5f1f3f 100644
--- a/editor/debugger/debug_adapter/debug_adapter_protocol.h
+++ b/editor/debugger/debug_adapter/debug_adapter_protocol.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/debug_adapter/debug_adapter_server.cpp b/editor/debugger/debug_adapter/debug_adapter_server.cpp
index 4775e2c8b0..ffbbf66015 100644
--- a/editor/debugger/debug_adapter/debug_adapter_server.cpp
+++ b/editor/debugger/debug_adapter/debug_adapter_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/debug_adapter/debug_adapter_server.h b/editor/debugger/debug_adapter/debug_adapter_server.h
index c449403cc2..a2b01f92c6 100644
--- a/editor/debugger/debug_adapter/debug_adapter_server.h
+++ b/editor/debugger/debug_adapter/debug_adapter_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/debug_adapter/debug_adapter_types.h b/editor/debugger/debug_adapter/debug_adapter_types.h
index 5156c91d14..77b70909b3 100644
--- a/editor/debugger/debug_adapter/debug_adapter_types.h
+++ b/editor/debugger/debug_adapter/debug_adapter_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_debugger_inspector.cpp b/editor/debugger/editor_debugger_inspector.cpp
index 9346b8f1af..addb168e5f 100644
--- a/editor/debugger/editor_debugger_inspector.cpp
+++ b/editor/debugger/editor_debugger_inspector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_debugger_inspector.h b/editor/debugger/editor_debugger_inspector.h
index 6648c99c03..5cdc4417d0 100644
--- a/editor/debugger/editor_debugger_inspector.h
+++ b/editor/debugger/editor_debugger_inspector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp
index 8ea028a7de..5bc2be60a7 100644
--- a/editor/debugger/editor_debugger_node.cpp
+++ b/editor/debugger/editor_debugger_node.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_debugger_node.h b/editor/debugger/editor_debugger_node.h
index 135122db68..6fcdbf5f73 100644
--- a/editor/debugger/editor_debugger_node.h
+++ b/editor/debugger/editor_debugger_node.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_debugger_server.cpp b/editor/debugger/editor_debugger_server.cpp
index 34904d55aa..bce131a5fe 100644
--- a/editor/debugger/editor_debugger_server.cpp
+++ b/editor/debugger/editor_debugger_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_debugger_server.h b/editor/debugger/editor_debugger_server.h
index 6a4ca895d1..bda4a1ce7d 100644
--- a/editor/debugger/editor_debugger_server.h
+++ b/editor/debugger/editor_debugger_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_debugger_tree.cpp b/editor/debugger/editor_debugger_tree.cpp
index be369aa0ca..70d64615ae 100644
--- a/editor/debugger/editor_debugger_tree.cpp
+++ b/editor/debugger/editor_debugger_tree.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_debugger_tree.h b/editor/debugger/editor_debugger_tree.h
index 13193344f1..58af52b01f 100644
--- a/editor/debugger/editor_debugger_tree.h
+++ b/editor/debugger/editor_debugger_tree.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_network_profiler.cpp b/editor/debugger/editor_network_profiler.cpp
index 8b1f0085d5..698e950f57 100644
--- a/editor/debugger/editor_network_profiler.cpp
+++ b/editor/debugger/editor_network_profiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_network_profiler.h b/editor/debugger/editor_network_profiler.h
index 8c1da1cb2d..320dd2a826 100644
--- a/editor/debugger/editor_network_profiler.h
+++ b/editor/debugger/editor_network_profiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_performance_profiler.cpp b/editor/debugger/editor_performance_profiler.cpp
index 6106f1755d..56d1e7cee9 100644
--- a/editor/debugger/editor_performance_profiler.cpp
+++ b/editor/debugger/editor_performance_profiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_performance_profiler.h b/editor/debugger/editor_performance_profiler.h
index ea3404b208..998ecc5bb6 100644
--- a/editor/debugger/editor_performance_profiler.h
+++ b/editor/debugger/editor_performance_profiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_profiler.cpp b/editor/debugger/editor_profiler.cpp
index 2bdacb51b8..d5e825a26c 100644
--- a/editor/debugger/editor_profiler.cpp
+++ b/editor/debugger/editor_profiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -645,7 +645,7 @@ EditorProfiler::EditorProfiler() {
variables->connect("item_edited", callable_mp(this, &EditorProfiler::_item_edited));
graph = memnew(TextureRect);
- graph->set_expand(true);
+ graph->set_ignore_texture_size(true);
graph->set_mouse_filter(MOUSE_FILTER_STOP);
graph->connect("draw", callable_mp(this, &EditorProfiler::_graph_tex_draw));
graph->connect("gui_input", callable_mp(this, &EditorProfiler::_graph_tex_input));
diff --git a/editor/debugger/editor_profiler.h b/editor/debugger/editor_profiler.h
index 8880824b87..45f7ac39c1 100644
--- a/editor/debugger/editor_profiler.h
+++ b/editor/debugger/editor_profiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/editor_visual_profiler.cpp b/editor/debugger/editor_visual_profiler.cpp
index a4e4ed4020..3cb5d3513d 100644
--- a/editor/debugger/editor_visual_profiler.cpp
+++ b/editor/debugger/editor_visual_profiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -786,7 +786,7 @@ EditorVisualProfiler::EditorVisualProfiler() {
variables->connect("cell_selected", callable_mp(this, &EditorVisualProfiler::_item_selected));
graph = memnew(TextureRect);
- graph->set_expand(true);
+ graph->set_ignore_texture_size(true);
graph->set_mouse_filter(MOUSE_FILTER_STOP);
//graph->set_ignore_mouse(false);
graph->connect("draw", callable_mp(this, &EditorVisualProfiler::_graph_tex_draw));
diff --git a/editor/debugger/editor_visual_profiler.h b/editor/debugger/editor_visual_profiler.h
index 6b04fdbafc..55ba725ae8 100644
--- a/editor/debugger/editor_visual_profiler.h
+++ b/editor/debugger/editor_visual_profiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp
index 4f7dc78017..b72a20ee2f 100644
--- a/editor/debugger/script_editor_debugger.cpp
+++ b/editor/debugger/script_editor_debugger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/debugger/script_editor_debugger.h b/editor/debugger/script_editor_debugger.h
index 76209aef46..ff1a852f26 100644
--- a/editor/debugger/script_editor_debugger.h
+++ b/editor/debugger/script_editor_debugger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp
index 1cc8cc01ce..9879671e7b 100644
--- a/editor/dependency_editor.cpp
+++ b/editor/dependency_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/dependency_editor.h b/editor/dependency_editor.h
index b17a685df8..d50b0849b7 100644
--- a/editor/dependency_editor.h
+++ b/editor/dependency_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/dictionary_property_edit.cpp b/editor/dictionary_property_edit.cpp
index 408177e523..30082f2e1a 100644
--- a/editor/dictionary_property_edit.cpp
+++ b/editor/dictionary_property_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/dictionary_property_edit.h b/editor/dictionary_property_edit.h
index d1401c5e5f..4639480828 100644
--- a/editor/dictionary_property_edit.h
+++ b/editor/dictionary_property_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp
index b9491998a0..a71e16b66c 100644
--- a/editor/doc_tools.cpp
+++ b/editor/doc_tools.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/doc_tools.h b/editor/doc_tools.h
index 809eedff2a..6c3a93de59 100644
--- a/editor/doc_tools.h
+++ b/editor/doc_tools.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_about.cpp b/editor/editor_about.cpp
index 2de92f5184..54377971c6 100644
--- a/editor/editor_about.cpp
+++ b/editor/editor_about.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -154,7 +154,7 @@ EditorAbout::EditorAbout() {
Label *about_text = memnew(Label);
about_text->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
- about_text->set_text(String::utf8("\xc2\xa9 2007-2021 Juan Linietsky, Ariel Manzur.\n\xc2\xa9 2014-2021 ") +
+ about_text->set_text(String::utf8("\xc2\xa9 2007-2022 Juan Linietsky, Ariel Manzur.\n\xc2\xa9 2014-2022 ") +
TTR("Godot Engine contributors") + "\n");
version_info_vbc->add_child(about_text);
diff --git a/editor/editor_about.h b/editor/editor_about.h
index b76a2ada34..e57b211ed4 100644
--- a/editor/editor_about.h
+++ b/editor/editor_about.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp
index 6c64c53837..1de67149c6 100644
--- a/editor/editor_asset_installer.cpp
+++ b/editor/editor_asset_installer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -124,7 +124,7 @@ void EditorAssetInstaller::open(const String &p_path, int p_depth) {
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String name = fname;
+ String name = String::utf8(fname);
files_sorted.insert(name);
ret = unzGoToNextFile(pkg);
@@ -303,7 +303,7 @@ void EditorAssetInstaller::ok_pressed() {
char fname[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String name = fname;
+ String name = String::utf8(fname);
if (status_map.has(name) && status_map[name]->is_checked(0)) {
String path = status_map[name]->get_metadata(0);
diff --git a/editor/editor_asset_installer.h b/editor/editor_asset_installer.h
index 9fafe2792a..2f59250933 100644
--- a/editor/editor_asset_installer.h
+++ b/editor/editor_asset_installer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_atlas_packer.cpp b/editor/editor_atlas_packer.cpp
index b8eba7e3f8..b6ec5d1bad 100644
--- a/editor/editor_atlas_packer.cpp
+++ b/editor/editor_atlas_packer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_atlas_packer.h b/editor/editor_atlas_packer.h
index 89824dff1c..133c516d80 100644
--- a/editor/editor_atlas_packer.h
+++ b/editor/editor_atlas_packer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp
index 81a1f26818..0829b9d24f 100644
--- a/editor/editor_audio_buses.cpp
+++ b/editor/editor_audio_buses.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h
index eb54bb3efb..f856556363 100644
--- a/editor/editor_audio_buses.h
+++ b/editor/editor_audio_buses.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp
index 418d7d58ef..d74a6e12b2 100644
--- a/editor/editor_autoload_settings.cpp
+++ b/editor/editor_autoload_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_autoload_settings.h b/editor/editor_autoload_settings.h
index b8e054cd14..20f6bf476f 100644
--- a/editor/editor_autoload_settings.h
+++ b/editor/editor_autoload_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_command_palette.cpp b/editor/editor_command_palette.cpp
index 6bc23c352a..1724e87489 100644
--- a/editor/editor_command_palette.cpp
+++ b/editor/editor_command_palette.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_command_palette.h b/editor/editor_command_palette.h
index 8836c7b0fb..41141af0c3 100644
--- a/editor/editor_command_palette.h
+++ b/editor/editor_command_palette.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp
index 390a2998d6..7a0a4abbff 100644
--- a/editor/editor_data.cpp
+++ b/editor/editor_data.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_data.h b/editor/editor_data.h
index 976d718b8e..ccf641ff26 100644
--- a/editor/editor_data.h
+++ b/editor/editor_data.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp
index 61b655098f..39054b7033 100644
--- a/editor/editor_dir_dialog.cpp
+++ b/editor/editor_dir_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_dir_dialog.h b/editor/editor_dir_dialog.h
index ef473b0779..053c1f5503 100644
--- a/editor/editor_dir_dialog.h
+++ b/editor/editor_dir_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp
index 95affb09b6..014e27ae15 100644
--- a/editor/editor_export.cpp
+++ b/editor/editor_export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -620,6 +620,14 @@ String EditorExportPlugin::get_ios_cpp_code() const {
return ios_cpp_code;
}
+void EditorExportPlugin::add_osx_plugin_file(const String &p_path) {
+ osx_plugin_files.push_back(p_path);
+}
+
+const Vector<String> &EditorExportPlugin::get_osx_plugin_files() const {
+ return osx_plugin_files;
+}
+
void EditorExportPlugin::add_ios_project_static_lib(const String &p_path) {
ios_project_static_libs.push_back(p_path);
}
@@ -660,6 +668,7 @@ void EditorExportPlugin::_bind_methods() {
ClassDB::bind_method(D_METHOD("add_ios_linker_flags", "flags"), &EditorExportPlugin::add_ios_linker_flags);
ClassDB::bind_method(D_METHOD("add_ios_bundle_file", "path"), &EditorExportPlugin::add_ios_bundle_file);
ClassDB::bind_method(D_METHOD("add_ios_cpp_code", "code"), &EditorExportPlugin::add_ios_cpp_code);
+ ClassDB::bind_method(D_METHOD("add_osx_plugin_file", "path"), &EditorExportPlugin::add_osx_plugin_file);
ClassDB::bind_method(D_METHOD("skip"), &EditorExportPlugin::skip);
GDVIRTUAL_BIND(_export_file, "path", "type", "features");
diff --git a/editor/editor_export.h b/editor/editor_export.h
index 1a5b8e6026..3d46ae1996 100644
--- a/editor/editor_export.h
+++ b/editor/editor_export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -308,6 +308,8 @@ class EditorExportPlugin : public RefCounted {
Vector<String> ios_bundle_files;
String ios_cpp_code;
+ Vector<String> osx_plugin_files;
+
_FORCE_INLINE_ void _clear() {
shared_objects.clear();
extra_files.clear();
@@ -321,6 +323,7 @@ class EditorExportPlugin : public RefCounted {
ios_plist_content = "";
ios_linker_flags = "";
ios_cpp_code = "";
+ osx_plugin_files.clear();
}
void _export_file_script(const String &p_path, const String &p_type, const Vector<String> &p_features);
@@ -341,6 +344,7 @@ protected:
void add_ios_linker_flags(const String &p_flags);
void add_ios_bundle_file(const String &p_path);
void add_ios_cpp_code(const String &p_code);
+ void add_osx_plugin_file(const String &p_path);
void skip();
@@ -361,6 +365,7 @@ public:
String get_ios_linker_flags() const;
Vector<String> get_ios_bundle_files() const;
String get_ios_cpp_code() const;
+ const Vector<String> &get_osx_plugin_files() const;
EditorExportPlugin();
};
diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp
index 2ca91043e1..94262c2289 100644
--- a/editor/editor_feature_profile.cpp
+++ b/editor/editor_feature_profile.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_feature_profile.h b/editor/editor_feature_profile.h
index d31498bfc6..c5f4ad60f4 100644
--- a/editor/editor_feature_profile.h
+++ b/editor/editor_feature_profile.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp
index a35458d284..dee00b6678 100644
--- a/editor/editor_file_dialog.cpp
+++ b/editor/editor_file_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -723,7 +723,7 @@ void EditorFileDialog::update_file_list() {
item_list->clear();
// Scroll back to the top after opening a directory
- item_list->get_v_scroll()->set_value(0);
+ item_list->get_v_scroll_bar()->set_value(0);
if (display_mode == DISPLAY_THUMBNAILS) {
item_list->set_max_columns(0);
diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h
index ed427dc76e..b7abfe0836 100644
--- a/editor/editor_file_dialog.h
+++ b/editor/editor_file_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp
index d515b58e37..a0673c8fb7 100644
--- a/editor/editor_file_system.cpp
+++ b/editor/editor_file_system.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_file_system.h b/editor/editor_file_system.h
index feadd0f2b2..ecc71e7d42 100644
--- a/editor/editor_file_system.h
+++ b/editor/editor_file_system.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_folding.cpp b/editor/editor_folding.cpp
index b8341ee406..266a064807 100644
--- a/editor/editor_folding.cpp
+++ b/editor/editor_folding.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_folding.h b/editor/editor_folding.h
index 90deb7c0e8..442d710d71 100644
--- a/editor/editor_folding.h
+++ b/editor/editor_folding.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp
index c65bfa6472..d556255a8f 100644
--- a/editor/editor_fonts.cpp
+++ b/editor/editor_fonts.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -273,8 +273,8 @@ void editor_register_fonts(Ref<Theme> p_theme) {
// Default font
MAKE_DEFAULT_FONT(df, String());
- p_theme->set_default_theme_font(df); // Default theme font
- p_theme->set_default_theme_font_size(default_font_size);
+ p_theme->set_default_font(df); // Default theme font
+ p_theme->set_default_font_size(default_font_size);
p_theme->set_font_size("main_size", "EditorFonts", default_font_size);
p_theme->set_font("main", "EditorFonts", df);
diff --git a/editor/editor_fonts.h b/editor/editor_fonts.h
index 59ee482b53..e450af00da 100644
--- a/editor/editor_fonts.h
+++ b/editor/editor_fonts.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index fc1e7ef389..06e3a63f4a 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -1724,14 +1724,34 @@ void EditorHelp::_add_text(const String &p_bbcode) {
_add_text_to_rt(p_bbcode, class_desc);
}
-void EditorHelp::generate_doc() {
- doc = memnew(DocTools);
- doc->generate(true);
+Thread EditorHelp::thread;
+
+void EditorHelp::_wait_for_thread() {
+ if (thread.is_started()) {
+ thread.wait_to_finish();
+ }
+}
+
+void EditorHelp::_gen_doc_thread(void *p_udata) {
DocTools compdoc;
compdoc.load_compressed(_doc_data_compressed, _doc_data_compressed_size, _doc_data_uncompressed_size);
doc->merge_from(compdoc); //ensure all is up to date
}
+static bool doc_gen_use_threads = true;
+
+void EditorHelp::generate_doc() {
+ doc = memnew(DocTools);
+ // Not doable on threads unfortunately, since it instantiates all sorts of classes to get default values.
+ doc->generate(true);
+
+ if (doc_gen_use_threads) {
+ thread.start(_gen_doc_thread, nullptr);
+ } else {
+ _gen_doc_thread(nullptr);
+ }
+}
+
void EditorHelp::_toggle_scripts_pressed() {
ScriptEditor::get_singleton()->toggle_scripts_panel();
update_toggle_scripts_button();
@@ -1741,6 +1761,7 @@ void EditorHelp::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_READY:
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
+ _wait_for_thread();
_update_doc();
} break;
case NOTIFICATION_THEME_CHANGED: {
@@ -1758,20 +1779,32 @@ void EditorHelp::_notification(int p_what) {
}
void EditorHelp::go_to_help(const String &p_help) {
+ _wait_for_thread();
_help_callback(p_help);
}
void EditorHelp::go_to_class(const String &p_class, int p_scroll) {
+ _wait_for_thread();
_goto_desc(p_class, p_scroll);
}
void EditorHelp::update_doc() {
+ _wait_for_thread();
ERR_FAIL_COND(!doc->class_list.has(edited_class));
ERR_FAIL_COND(!doc->class_list[edited_class].is_script_doc);
_update_doc();
}
+void EditorHelp::cleanup_doc() {
+ _wait_for_thread();
+ if (doc_gen_use_threads) {
+ thread.wait_to_finish();
+ }
+ memdelete(doc);
+}
+
Vector<Pair<String, int>> EditorHelp::get_sections() {
+ _wait_for_thread();
Vector<Pair<String, int>> sections;
for (int i = 0; i < section_line.size(); i++) {
@@ -1781,11 +1814,13 @@ Vector<Pair<String, int>> EditorHelp::get_sections() {
}
void EditorHelp::scroll_to_section(int p_section_index) {
+ _wait_for_thread();
int line = section_line[p_section_index].second;
class_desc->scroll_to_paragraph(line);
}
void EditorHelp::popup_search() {
+ _wait_for_thread();
find_bar->popup_search();
}
@@ -1798,11 +1833,11 @@ void EditorHelp::search_again(bool p_search_previous) {
}
int EditorHelp::get_scroll() const {
- return class_desc->get_v_scroll()->get_value();
+ return class_desc->get_v_scroll_bar()->get_value();
}
void EditorHelp::set_scroll(int p_scroll) {
- class_desc->get_v_scroll()->set_value(p_scroll);
+ class_desc->get_v_scroll_bar()->set_value(p_scroll);
}
void EditorHelp::update_toggle_scripts_button() {
@@ -1864,6 +1899,11 @@ EditorHelp::EditorHelp() {
EditorHelp::~EditorHelp() {
}
+DocTools *EditorHelp::get_doc_data() {
+ _wait_for_thread();
+ return doc;
+}
+
void EditorHelpBit::_go_to_help(String p_what) {
EditorNode::get_singleton()->set_visible_editor(EditorNode::EDITOR_SCRIPT);
ScriptEditor::get_singleton()->goto_help(p_what);
diff --git a/editor/editor_help.h b/editor/editor_help.h
index 393e4a940a..eb879c6d39 100644
--- a/editor/editor_help.h
+++ b/editor/editor_help.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -31,6 +31,7 @@
#ifndef EDITOR_HELP_H
#define EDITOR_HELP_H
+#include "core/os/thread.h"
#include "editor/code_editor.h"
#include "editor/doc_tools.h"
#include "editor/editor_plugin.h"
@@ -164,13 +165,19 @@ class EditorHelp : public VBoxContainer {
String _fix_constant(const String &p_constant) const;
void _toggle_scripts_pressed();
+ static Thread thread;
+
+ static void _wait_for_thread();
+ static void _gen_doc_thread(void *p_udata);
+
protected:
void _notification(int p_what);
static void _bind_methods();
public:
static void generate_doc();
- static DocTools *get_doc_data() { return doc; }
+ static DocTools *get_doc_data();
+ static void cleanup_doc();
void go_to_help(const String &p_help);
void go_to_class(const String &p_class, int p_scroll = 0);
diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp
index bf7280dfd0..19da6686a5 100644
--- a/editor/editor_help_search.cpp
+++ b/editor/editor_help_search.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_help_search.h b/editor/editor_help_search.h
index 7285f76c01..7d918d0c68 100644
--- a/editor/editor_help_search.h
+++ b/editor/editor_help_search.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index a53938e3f1..75e518e050 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -1799,7 +1799,7 @@ Array EditorInspectorArray::_extract_properties_as_array(const List<PropertyInfo
dict[format_string] = object->get(pi.name);
output[array_index] = dict;
} else {
- WARN_PRINT(vformat("Array element %s has an index too high. Array allocaiton failed.", pi.name));
+ WARN_PRINT(vformat("Array element %s has an index too high. Array allocation failed.", pi.name));
}
}
}
@@ -2766,7 +2766,7 @@ void EditorInspector::update_tree() {
doc_hint = descr;
}
- // Seach for the inspector plugin that will handle the properties. Then add the correct property editor to it.
+ // Search for the inspector plugin that will handle the properties. Then add the correct property editor to it.
for (Ref<EditorInspectorPlugin> &ped : valid_plugins) {
bool exclusive = ped->parse_property(object, p.type, p.name, p.hint, p.hint_string, p.usage, wide_editors);
@@ -3205,7 +3205,10 @@ void EditorInspector::_property_keyed(const String &p_path, bool p_advance) {
return;
}
- emit_signal(SNAME("property_keyed"), p_path, object->get(p_path), p_advance); //second param is deprecated
+ // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it.
+ const Variant args[3] = { p_path, object->get(p_path), p_advance };
+ const Variant *argp[3] = { &args[0], &args[1], &args[2] };
+ emit_signal(SNAME("property_keyed"), argp, 3);
}
void EditorInspector::_property_deleted(const String &p_path) {
@@ -3213,7 +3216,7 @@ void EditorInspector::_property_deleted(const String &p_path) {
return;
}
- emit_signal(SNAME("property_deleted"), p_path); //second param is deprecated
+ emit_signal(SNAME("property_deleted"), p_path);
}
void EditorInspector::_property_keyed_with_value(const String &p_path, const Variant &p_value, bool p_advance) {
@@ -3221,7 +3224,10 @@ void EditorInspector::_property_keyed_with_value(const String &p_path, const Var
return;
}
- emit_signal(SNAME("property_keyed"), p_path, p_value, p_advance); //second param is deprecated
+ // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it.
+ const Variant args[3] = { p_path, p_value, p_advance };
+ const Variant *argp[3] = { &args[0], &args[1], &args[2] };
+ emit_signal(SNAME("property_keyed"), argp, 3);
}
void EditorInspector::_property_checked(const String &p_path, bool p_checked) {
@@ -3349,7 +3355,7 @@ void EditorInspector::_notification(int p_what) {
if (p_what == NOTIFICATION_PROCESS) {
if (update_scroll_request >= 0) {
- get_v_scrollbar()->call_deferred(SNAME("set_value"), update_scroll_request);
+ get_v_scroll_bar()->call_deferred(SNAME("set_value"), update_scroll_request);
update_scroll_request = -1;
}
if (refresh_countdown > 0) {
@@ -3531,7 +3537,7 @@ void EditorInspector::_bind_methods() {
ClassDB::bind_method("_edit_request_change", &EditorInspector::_edit_request_change);
ADD_SIGNAL(MethodInfo("property_selected", PropertyInfo(Variant::STRING, "property")));
- ADD_SIGNAL(MethodInfo("property_keyed", PropertyInfo(Variant::STRING, "property")));
+ ADD_SIGNAL(MethodInfo("property_keyed", PropertyInfo(Variant::STRING, "property"), PropertyInfo(Variant::NIL, "value", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT), PropertyInfo(Variant::BOOL, "advance")));
ADD_SIGNAL(MethodInfo("property_deleted", PropertyInfo(Variant::STRING, "property")));
ADD_SIGNAL(MethodInfo("resource_selected", PropertyInfo(Variant::OBJECT, "res"), PropertyInfo(Variant::STRING, "prop")));
ADD_SIGNAL(MethodInfo("object_id_selected", PropertyInfo(Variant::INT, "id")));
@@ -3570,7 +3576,7 @@ EditorInspector::EditorInspector() {
deletable_properties = false;
property_clipboard = Variant();
- get_v_scrollbar()->connect("value_changed", callable_mp(this, &EditorInspector::_vscroll_changed));
+ get_v_scroll_bar()->connect("value_changed", callable_mp(this, &EditorInspector::_vscroll_changed));
update_scroll_request = -1;
if (EditorSettings::get_singleton()) {
refresh_countdown = float(EditorSettings::get_singleton()->get("docks/property_editor/auto_refresh_interval"));
diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h
index d247978649..09b25065dc 100644
--- a/editor/editor_inspector.h
+++ b/editor/editor_inspector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_layouts_dialog.cpp b/editor/editor_layouts_dialog.cpp
index 7c8965d6f4..886e29a504 100644
--- a/editor/editor_layouts_dialog.cpp
+++ b/editor/editor_layouts_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_layouts_dialog.h b/editor/editor_layouts_dialog.h
index 8687660832..bbdffd6722 100644
--- a/editor/editor_layouts_dialog.h
+++ b/editor/editor_layouts_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp
index 7bd98b0f0b..04bfcfac95 100644
--- a/editor/editor_log.cpp
+++ b/editor/editor_log.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -429,7 +429,7 @@ EditorLog::EditorLog() {
vb_right->add_child(editor_filter->toggle_button);
type_filter_map.insert(MSG_TYPE_EDITOR, editor_filter);
- add_message(VERSION_FULL_NAME " (c) 2007-2021 Juan Linietsky, Ariel Manzur & Godot Contributors.");
+ add_message(VERSION_FULL_NAME " (c) 2007-2022 Juan Linietsky, Ariel Manzur & Godot Contributors.");
eh.errfunc = _error_handler;
eh.userdata = this;
diff --git a/editor/editor_log.h b/editor/editor_log.h
index 43cc5680bd..69a6a0b449 100644
--- a/editor/editor_log.h
+++ b/editor/editor_log.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_native_shader_source_visualizer.cpp b/editor/editor_native_shader_source_visualizer.cpp
index f98ac5af79..1813963f6f 100644
--- a/editor/editor_native_shader_source_visualizer.cpp
+++ b/editor/editor_native_shader_source_visualizer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_native_shader_source_visualizer.h b/editor/editor_native_shader_source_visualizer.h
index 72a2f8baae..78034dc3ba 100644
--- a/editor/editor_native_shader_source_visualizer.h
+++ b/editor/editor_native_shader_source_visualizer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 00a776ba4d..afd5407f37 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -477,6 +477,7 @@ void EditorNode::_update_from_settings() {
RS::get_singleton()->environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/environment/ssao/quality"))), GLOBAL_GET("rendering/environment/ssao/half_size"), GLOBAL_GET("rendering/environment/ssao/adaptive_target"), GLOBAL_GET("rendering/environment/ssao/blur_passes"), GLOBAL_GET("rendering/environment/ssao/fadeout_from"), GLOBAL_GET("rendering/environment/ssao/fadeout_to"));
RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/enabled"), GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/amount"), GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/limit"));
bool glow_bicubic = int(GLOBAL_GET("rendering/environment/glow/upscale_mode")) > 0;
+ RS::get_singleton()->environment_set_ssil_quality(RS::EnvironmentSSILQuality(int(GLOBAL_GET("rendering/environment/ssil/quality"))), GLOBAL_GET("rendering/environment/ssil/half_size"), GLOBAL_GET("rendering/environment/ssil/adaptive_target"), GLOBAL_GET("rendering/environment/ssil/blur_passes"), GLOBAL_GET("rendering/environment/ssil/fadeout_from"), GLOBAL_GET("rendering/environment/ssil/fadeout_to"));
RS::get_singleton()->environment_glow_set_use_bicubic_upscale(glow_bicubic);
bool glow_high_quality = GLOBAL_GET("rendering/environment/glow/use_high_quality");
RS::get_singleton()->environment_glow_set_use_high_quality(glow_high_quality);
@@ -521,8 +522,8 @@ void EditorNode::_update_from_settings() {
Viewport::SDFScale sdf_scale = Viewport::SDFScale(int(GLOBAL_GET("rendering/2d/sdf/scale")));
scene_root->set_sdf_scale(sdf_scale);
- float lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
- scene_root->set_lod_threshold(lod_threshold);
+ float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
+ scene_root->set_mesh_lod_threshold(mesh_lod_threshold);
RS::get_singleton()->decals_set_filter(RS::DecalFilter(int(GLOBAL_GET("rendering/textures/decals/filter"))));
RS::get_singleton()->light_projectors_set_filter(RS::LightProjectorFilter(int(GLOBAL_GET("rendering/textures/light_projectors/filter"))));
@@ -2128,11 +2129,19 @@ static bool overrides_external_editor(Object *p_object) {
return script->get_language()->overrides_external_editor();
}
-void EditorNode::_edit_current() {
+void EditorNode::_edit_current(bool p_skip_foreign) {
ObjectID current = editor_history.get_current();
Object *current_obj = current.is_valid() ? ObjectDB::get_instance(current) : nullptr;
- bool inspector_only = editor_history.is_current_inspector_only();
+ RES res = Object::cast_to<Resource>(current_obj);
+ if (p_skip_foreign && res.is_valid()) {
+ if (res->get_path().find("::") > -1 && res->get_path().get_slice("::", 0) != editor_data.get_scene_path(get_current_tab())) {
+ // Trying to edit resource that belongs to another scene; abort.
+ current_obj = nullptr;
+ }
+ }
+
+ bool inspector_only = editor_history.is_current_inspector_only();
this->current = current_obj;
if (!current_obj) {
@@ -2263,8 +2272,8 @@ void EditorNode::_edit_current() {
if (main_plugin) {
// special case if use of external editor is true
- Resource *res = Object::cast_to<Resource>(current_obj);
- if (main_plugin->get_name() == "Script" && current_obj->get_class_name() != StringName("VisualScript") && res && !res->is_built_in() && (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor")) || overrides_external_editor(current_obj))) {
+ Resource *current_res = Object::cast_to<Resource>(current_obj);
+ if (main_plugin->get_name() == "Script" && current_obj->get_class_name() != StringName("VisualScript") && current_res && !current_res->is_built_in() && (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor")) || overrides_external_editor(current_obj))) {
if (!changing_scene) {
main_plugin->edit(current_obj);
}
@@ -3493,7 +3502,7 @@ void EditorNode::set_current_scene(int p_idx) {
}
Dictionary state = editor_data.restore_edited_scene_state(editor_selection, &editor_history);
- _edit_current();
+ _edit_current(true);
_update_title();
@@ -7202,7 +7211,7 @@ EditorNode::~EditorNode() {
EditorTranslationParser::get_singleton()->clean_parsers();
remove_print_handler(&print_handler);
- memdelete(EditorHelp::get_doc_data());
+ EditorHelp::cleanup_doc();
memdelete(editor_selection);
memdelete(editor_plugins_over);
memdelete(editor_plugins_force_over);
diff --git a/editor/editor_node.h b/editor/editor_node.h
index d74ec33f25..7ecdb7c263 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -459,7 +459,7 @@ private:
void _dialog_action(String p_file);
- void _edit_current();
+ void _edit_current(bool p_skip_foreign = false);
void _dialog_display_save_error(String p_file, Error p_error);
void _dialog_display_load_error(String p_file, Error p_error);
diff --git a/editor/editor_path.cpp b/editor/editor_path.cpp
index b6797825b0..3dee06fb3e 100644
--- a/editor/editor_path.cpp
+++ b/editor/editor_path.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_path.h b/editor/editor_path.h
index 07f8b7244e..ad8443534d 100644
--- a/editor/editor_path.h
+++ b/editor/editor_path.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_paths.cpp b/editor/editor_paths.cpp
index e747cdc29e..a4481cd1eb 100644
--- a/editor/editor_paths.cpp
+++ b/editor/editor_paths.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_paths.h b/editor/editor_paths.h
index cf94ed797a..4b814707b2 100644
--- a/editor/editor_paths.h
+++ b/editor/editor_paths.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp
index 9682a847ca..aeca340cb1 100644
--- a/editor/editor_plugin.cpp
+++ b/editor/editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h
index a49e1bf229..faa8ae1ce6 100644
--- a/editor/editor_plugin.h
+++ b/editor/editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_plugin_settings.cpp b/editor/editor_plugin_settings.cpp
index 6aeede78b6..80329a36b2 100644
--- a/editor/editor_plugin_settings.cpp
+++ b/editor/editor_plugin_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_plugin_settings.h b/editor/editor_plugin_settings.h
index 34b26de90e..8ff6e4b9e1 100644
--- a/editor/editor_plugin_settings.h
+++ b/editor/editor_plugin_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index eb1a0a2031..97a38b9200 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -2909,8 +2909,11 @@ void EditorPropertyResource::_resource_changed(const RES &p_resource) {
}
}
-void EditorPropertyResource::_sub_inspector_property_keyed(const String &p_property, const Variant &p_value, bool) {
- emit_signal(SNAME("property_keyed_with_value"), String(get_edited_property()) + ":" + p_property, p_value, false);
+void EditorPropertyResource::_sub_inspector_property_keyed(const String &p_property, const Variant &p_value, bool p_advance) {
+ // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it.
+ const Variant args[3] = { String(get_edited_property()) + ":" + p_property, p_value, p_advance };
+ const Variant *argp[3] = { &args[0], &args[1], &args[2] };
+ emit_signal(SNAME("property_keyed_with_value"), argp, 3);
}
void EditorPropertyResource::_sub_inspector_resource_selected(const RES &p_resource, const String &p_property) {
diff --git a/editor/editor_properties.h b/editor/editor_properties.h
index 0b98e4c7c9..e62f6823a3 100644
--- a/editor/editor_properties.h
+++ b/editor/editor_properties.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -666,7 +666,7 @@ class EditorPropertyResource : public EditorProperty {
void _viewport_selected(const NodePath &p_path);
- void _sub_inspector_property_keyed(const String &p_property, const Variant &p_value, bool);
+ void _sub_inspector_property_keyed(const String &p_property, const Variant &p_value, bool p_advance);
void _sub_inspector_resource_selected(const RES &p_resource, const String &p_property);
void _sub_inspector_object_id_selected(int p_id);
diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp
index 858de7fb78..36203bca36 100644
--- a/editor/editor_properties_array_dict.cpp
+++ b/editor/editor_properties_array_dict.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_properties_array_dict.h b/editor/editor_properties_array_dict.h
index 7547d57346..4c31ba0b49 100644
--- a/editor/editor_properties_array_dict.h
+++ b/editor/editor_properties_array_dict.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp
index 6a6634d7e5..6002bcfadc 100644
--- a/editor/editor_resource_picker.cpp
+++ b/editor/editor_resource_picker.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -49,6 +49,7 @@ void EditorResourcePicker::_update_resource() {
if (edited_resource == RES()) {
assign_button->set_icon(Ref<Texture2D>());
assign_button->set_text(TTR("[empty]"));
+ assign_button->set_tooltip("");
} else {
assign_button->set_icon(EditorNode::get_singleton()->get_object_icon(edited_resource.operator->(), "Object"));
@@ -56,14 +57,15 @@ void EditorResourcePicker::_update_resource() {
assign_button->set_text(edited_resource->get_name());
} else if (edited_resource->get_path().is_resource_file()) {
assign_button->set_text(edited_resource->get_path().get_file());
- assign_button->set_tooltip(edited_resource->get_path());
} else {
assign_button->set_text(edited_resource->get_class());
}
+ String resource_path;
if (edited_resource->get_path().is_resource_file()) {
- assign_button->set_tooltip(edited_resource->get_path());
+ resource_path = edited_resource->get_path() + "\n";
}
+ assign_button->set_tooltip(resource_path + TTR("Type:") + " " + edited_resource->get_class());
// Preview will override the above, so called at the end.
EditorResourcePreview::get_singleton()->queue_edited_resource_preview(edited_resource, this, "_update_resource_preview", edited_resource->get_instance_id());
@@ -385,8 +387,7 @@ void EditorResourcePicker::_edit_menu_cbk(int p_which) {
void EditorResourcePicker::set_create_options(Object *p_menu_node) {
_ensure_resource_menu();
// If a subclass implements this method, use it to replace all create items.
- if (get_script_instance() && get_script_instance()->has_method("_set_create_options")) {
- get_script_instance()->call("_set_create_options", p_menu_node);
+ if (GDVIRTUAL_CALL(_set_create_options, p_menu_node)) {
return;
}
@@ -442,8 +443,9 @@ void EditorResourcePicker::set_create_options(Object *p_menu_node) {
}
bool EditorResourcePicker::handle_menu_selected(int p_which) {
- if (get_script_instance() && get_script_instance()->has_method("_handle_menu_selected")) {
- return get_script_instance()->call("_handle_menu_selected", p_which);
+ bool success;
+ if (GDVIRTUAL_CALL(_handle_menu_selected, p_which, success)) {
+ return success;
}
return false;
@@ -514,12 +516,14 @@ void EditorResourcePicker::_get_allowed_types(bool p_with_convert, Set<String> *
}
if (p_with_convert) {
- if (base == "StandardMaterial3D") {
+ if (base == "BaseMaterial3D") {
p_vector->insert("Texture2D");
} else if (base == "ShaderMaterial") {
p_vector->insert("Shader");
} else if (base == "Font") {
p_vector->insert("FontData");
+ } else if (base == "Texture2D") {
+ p_vector->insert("Image");
}
}
}
@@ -636,26 +640,46 @@ void EditorResourcePicker::drop_data_fw(const Point2 &p_point, const Variant &p_
for (Set<String>::Element *E = allowed_types.front(); E; E = E->next()) {
String at = E->get().strip_edges();
- if (at == "StandardMaterial3D" && ClassDB::is_parent_class(dropped_resource->get_class(), "Texture2D")) {
- Ref<StandardMaterial3D> mat = memnew(StandardMaterial3D);
+ if (at == "BaseMaterial3D" && ClassDB::is_parent_class(dropped_resource->get_class(), "Texture2D")) {
+ // Use existing resource if possible and only replace its data.
+ Ref<StandardMaterial3D> mat = edited_resource;
+ if (!mat.is_valid()) {
+ mat.instantiate();
+ }
mat->set_texture(StandardMaterial3D::TextureParam::TEXTURE_ALBEDO, dropped_resource);
dropped_resource = mat;
break;
}
if (at == "ShaderMaterial" && ClassDB::is_parent_class(dropped_resource->get_class(), "Shader")) {
- Ref<ShaderMaterial> mat = memnew(ShaderMaterial);
+ Ref<ShaderMaterial> mat = edited_resource;
+ if (!mat.is_valid()) {
+ mat.instantiate();
+ }
mat->set_shader(dropped_resource);
dropped_resource = mat;
break;
}
if (at == "Font" && ClassDB::is_parent_class(dropped_resource->get_class(), "FontData")) {
- Ref<Font> font = memnew(Font);
+ Ref<Font> font = edited_resource;
+ if (!font.is_valid()) {
+ font.instantiate();
+ }
font->add_data(dropped_resource);
dropped_resource = font;
break;
}
+
+ if (at == "Texture2D" && ClassDB::is_parent_class(dropped_resource->get_class(), "Image")) {
+ Ref<ImageTexture> texture = edited_resource;
+ if (!texture.is_valid()) {
+ texture.instantiate();
+ }
+ texture->create_from_image(dropped_resource);
+ dropped_resource = texture;
+ break;
+ }
}
}
@@ -682,8 +706,8 @@ void EditorResourcePicker::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_editable", "enable"), &EditorResourcePicker::set_editable);
ClassDB::bind_method(D_METHOD("is_editable"), &EditorResourcePicker::is_editable);
- ClassDB::add_virtual_method(get_class_static(), MethodInfo("_set_create_options", PropertyInfo(Variant::OBJECT, "menu_node")));
- ClassDB::add_virtual_method(get_class_static(), MethodInfo("_handle_menu_selected", PropertyInfo(Variant::INT, "id")));
+ GDVIRTUAL_BIND(_set_create_options, "menu_node");
+ GDVIRTUAL_BIND(_handle_menu_selected, "id");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "base_type"), "set_base_type", "get_base_type");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "edited_resource", PROPERTY_HINT_RESOURCE_TYPE, "Resource", PROPERTY_USAGE_NONE), "set_edited_resource", "get_edited_resource");
@@ -850,7 +874,7 @@ EditorResourcePicker::EditorResourcePicker() {
assign_button->connect("gui_input", callable_mp(this, &EditorResourcePicker::_button_input));
preview_rect = memnew(TextureRect);
- preview_rect->set_expand(true);
+ preview_rect->set_ignore_texture_size(true);
preview_rect->set_anchors_and_offsets_preset(PRESET_WIDE);
preview_rect->set_offset(SIDE_TOP, 1);
preview_rect->set_offset(SIDE_BOTTOM, -1);
diff --git a/editor/editor_resource_picker.h b/editor/editor_resource_picker.h
index f55c6f47f3..8ffa52f14f 100644
--- a/editor/editor_resource_picker.h
+++ b/editor/editor_resource_picker.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -102,6 +102,9 @@ protected:
static void _bind_methods();
void _notification(int p_what);
+ GDVIRTUAL1(_set_create_options, Object *)
+ GDVIRTUAL1R(bool, _handle_menu_selected, int)
+
public:
static void clear_caches();
diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp
index 15fc3b1db3..2d1335270c 100644
--- a/editor/editor_resource_preview.cpp
+++ b/editor/editor_resource_preview.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_resource_preview.h b/editor/editor_resource_preview.h
index 9d1f269661..938902a6ad 100644
--- a/editor/editor_resource_preview.h
+++ b/editor/editor_resource_preview.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_run.cpp b/editor/editor_run.cpp
index 92dae89b33..3c1799d80c 100644
--- a/editor/editor_run.cpp
+++ b/editor/editor_run.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_run.h b/editor/editor_run.h
index 3bfe28e1ad..50604ff032 100644
--- a/editor/editor_run.h
+++ b/editor/editor_run.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp
index 74ebffc404..adaeaad6ae 100644
--- a/editor/editor_run_native.cpp
+++ b/editor/editor_run_native.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_run_native.h b/editor/editor_run_native.h
index 97f6fc005a..199d094e55 100644
--- a/editor/editor_run_native.h
+++ b/editor/editor_run_native.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_run_script.cpp b/editor/editor_run_script.cpp
index 27923ef413..77173d178b 100644
--- a/editor/editor_run_script.cpp
+++ b/editor/editor_run_script.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_run_script.h b/editor/editor_run_script.h
index 6c7e37774d..7fb728a00a 100644
--- a/editor/editor_run_script.h
+++ b/editor/editor_run_script.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_scale.cpp b/editor/editor_scale.cpp
index 85304a9cbc..29c1f6278b 100644
--- a/editor/editor_scale.cpp
+++ b/editor/editor_scale.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_scale.h b/editor/editor_scale.h
index b20c18706a..918fde15fb 100644
--- a/editor/editor_scale.h
+++ b/editor/editor_scale.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp
index c7a9171709..6853045345 100644
--- a/editor/editor_sectioned_inspector.cpp
+++ b/editor/editor_sectioned_inspector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_sectioned_inspector.h b/editor/editor_sectioned_inspector.h
index 1068a4f932..f81c4631e4 100644
--- a/editor/editor_sectioned_inspector.h
+++ b/editor/editor_sectioned_inspector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index 1ac1d6f048..bb0a2ed7c1 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -142,7 +142,7 @@ bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const {
if (builtin_list.has(shortcut_definition.key)) {
// This shortcut was auto-generated from built in actions: don't save.
- // If the builtin is overriden, it will be saved in the "builtin_action_overrides" section below.
+ // If the builtin is overridden, it will be saved in the "builtin_action_overrides" section below.
continue;
}
@@ -431,7 +431,11 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("interface/editor/hide_console_window", false);
_initial_set("interface/editor/mouse_extra_buttons_navigate_history", true);
_initial_set("interface/editor/save_each_scene_on_quit", true); // Regression
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_internal_errors_in_toast_notifications", 0, "Auto,Enabled,Disabled")
+#ifdef DEV_ENABLED
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_internal_errors_in_toast_notifications", 0, "Auto (Enabled),Enabled,Disabled")
+#else
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_internal_errors_in_toast_notifications", 0, "Auto (Disabled),Enabled,Disabled")
+#endif
// Inspector
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "interface/inspector/max_array_dictionary_items_per_page", 20, "10,100,1")
@@ -781,43 +785,6 @@ bool EditorSettings::_is_default_text_editor_theme(String p_theme_name) {
return p_theme_name == "default" || p_theme_name == "godot 2" || p_theme_name == "custom";
}
-static Dictionary _get_builtin_script_templates() {
- Dictionary templates;
-
- // No Comments
- templates["no_comments.gd"] =
- "extends %BASE%\n"
- "\n"
- "\n"
- "func _ready()%VOID_RETURN%:\n"
- "%TS%pass\n";
-
- // Empty
- templates["empty.gd"] =
- "extends %BASE%"
- "\n"
- "\n";
-
- return templates;
-}
-
-static void _create_script_templates(const String &p_path) {
- Dictionary templates = _get_builtin_script_templates();
- List<Variant> keys;
- templates.get_key_list(&keys);
- FileAccessRef file = FileAccess::create(FileAccess::ACCESS_FILESYSTEM);
- DirAccessRef dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
- dir->change_dir(p_path);
- for (int i = 0; i < keys.size(); i++) {
- if (!dir->file_exists(keys[i])) {
- Error err = file->reopen(p_path.plus_file((String)keys[i]), FileAccess::WRITE);
- ERR_FAIL_COND(err != OK);
- file->store_string(templates[keys[i]]);
- file->close();
- }
- }
-}
-
// PUBLIC METHODS
EditorSettings *EditorSettings::get_singleton() {
@@ -852,10 +819,7 @@ void EditorSettings::create() {
}
if (EditorPaths::get_singleton()->are_paths_valid()) {
- _create_script_templates(EditorPaths::get_singleton()->get_config_dir().plus_file("script_templates"));
-
// Validate editor config file.
-
DirAccessRef dir = DirAccess::open(EditorPaths::get_singleton()->get_config_dir());
String config_file_name = "editor_settings-" + itos(VERSION_MAJOR) + ".tres";
config_file_path = EditorPaths::get_singleton()->get_config_dir().plus_file(config_file_name);
diff --git a/editor/editor_settings.h b/editor/editor_settings.h
index cb23ed3d19..f1a0329d65 100644
--- a/editor/editor_settings.h
+++ b/editor/editor_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp
index 111c8c699e..cd28a65c7b 100644
--- a/editor/editor_spin_slider.cpp
+++ b/editor/editor_spin_slider.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_spin_slider.h b/editor/editor_spin_slider.h
index 68448b3240..7e3f2051ac 100644
--- a/editor/editor_spin_slider.h
+++ b/editor/editor_spin_slider.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index 7bbac11754..a8a1dc37ab 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -294,7 +294,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
Ref<Theme> theme = Ref<Theme>(memnew(Theme));
// Controls may rely on the scale for their internal drawing logic.
- theme->set_default_theme_base_scale(EDSCALE);
+ theme->set_default_base_scale(EDSCALE);
// Theme settings
Color accent_color = EDITOR_GET("interface/theme/accent_color");
diff --git a/editor/editor_themes.h b/editor/editor_themes.h
index c040654220..642558d774 100644
--- a/editor/editor_themes.h
+++ b/editor/editor_themes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_toaster.cpp b/editor/editor_toaster.cpp
index 05b895519d..df0588c641 100644
--- a/editor/editor_toaster.cpp
+++ b/editor/editor_toaster.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_toaster.h b/editor/editor_toaster.h
index 502498986a..b626a47d0c 100644
--- a/editor/editor_toaster.h
+++ b/editor/editor_toaster.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_translation.cpp b/editor/editor_translation.cpp
index 23145c27c8..98248f3a87 100644
--- a/editor/editor_translation.cpp
+++ b/editor/editor_translation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_translation.h b/editor/editor_translation.h
index 41703f0fd0..baba03859d 100644
--- a/editor/editor_translation.h
+++ b/editor/editor_translation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_translation_parser.cpp b/editor/editor_translation_parser.cpp
index df47b2d988..27b8c3fd5d 100644
--- a/editor/editor_translation_parser.cpp
+++ b/editor/editor_translation_parser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_translation_parser.h b/editor/editor_translation_parser.h
index 242ba33b55..bd770250f9 100644
--- a/editor/editor_translation_parser.h
+++ b/editor/editor_translation_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_vcs_interface.cpp b/editor/editor_vcs_interface.cpp
index b4b740d7c6..97611d9786 100644
--- a/editor/editor_vcs_interface.cpp
+++ b/editor/editor_vcs_interface.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_vcs_interface.h b/editor/editor_vcs_interface.h
index 1a2adeb148..091936dadc 100644
--- a/editor/editor_vcs_interface.h
+++ b/editor/editor_vcs_interface.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_zoom_widget.cpp b/editor/editor_zoom_widget.cpp
index 5a37d882c2..abfa383297 100644
--- a/editor/editor_zoom_widget.cpp
+++ b/editor/editor_zoom_widget.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/editor_zoom_widget.h b/editor/editor_zoom_widget.h
index c35faeefe7..bf8358ff1a 100644
--- a/editor/editor_zoom_widget.h
+++ b/editor/editor_zoom_widget.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp
index 7ae7195deb..8c34609e9c 100644
--- a/editor/export_template_manager.cpp
+++ b/editor/export_template_manager.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -396,7 +396,7 @@ bool ExportTemplateManager::_install_file_selected(const String &p_file, bool p_
char fname[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String file = fname;
+ String file = String::utf8(fname);
if (file.ends_with("version.txt")) {
Vector<uint8_t> data;
data.resize(info.uncompressed_size);
@@ -457,7 +457,7 @@ bool ExportTemplateManager::_install_file_selected(const String &p_file, bool p_
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String file_path(String(fname).simplify_path());
+ String file_path(String::utf8(fname).simplify_path());
String file = file_path.get_file();
@@ -698,7 +698,7 @@ Error ExportTemplateManager::install_android_template_from_file(const String &p_
char fpath[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fpath, 16384, nullptr, 0, nullptr, 0);
- String path = fpath;
+ String path = String::utf8(fpath);
String base_dir = path.get_base_dir();
if (!path.ends_with("/")) {
diff --git a/editor/export_template_manager.h b/editor/export_template_manager.h
index ebadb88c36..cf7585635d 100644
--- a/editor/export_template_manager.h
+++ b/editor/export_template_manager.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/fileserver/editor_file_server.cpp b/editor/fileserver/editor_file_server.cpp
index 66bcbb4d5d..4a6aa11938 100644
--- a/editor/fileserver/editor_file_server.cpp
+++ b/editor/fileserver/editor_file_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/fileserver/editor_file_server.h b/editor/fileserver/editor_file_server.h
index d0405e0bb7..7807e72800 100644
--- a/editor/fileserver/editor_file_server.h
+++ b/editor/fileserver/editor_file_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index 72fc9fbc6e..0253307d5a 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -529,7 +529,7 @@ void FileSystemDock::_navigate_to_path(const String &p_path, bool p_select_in_fa
_update_tree(_compute_uncollapsed_paths(), false, p_select_in_favorites, true);
if (display_mode == DISPLAY_MODE_SPLIT) {
_update_file_list(false);
- files->get_v_scroll()->set_value(0);
+ files->get_v_scroll_bar()->set_value(0);
}
String file_name = p_path.get_file();
diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h
index 34b445f1b3..8d50f05da9 100644
--- a/editor/filesystem_dock.h
+++ b/editor/filesystem_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp
index 9f7abfa19d..131ecc3b12 100644
--- a/editor/find_in_files.cpp
+++ b/editor/find_in_files.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/find_in_files.h b/editor/find_in_files.h
index 488f14a922..fca6910f1c 100644
--- a/editor/find_in_files.h
+++ b/editor/find_in_files.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp
index 788c7dc029..c65d4e9e3b 100644
--- a/editor/groups_editor.cpp
+++ b/editor/groups_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/groups_editor.h b/editor/groups_editor.h
index f0a5b4a794..677ef14a1f 100644
--- a/editor/groups_editor.h
+++ b/editor/groups_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/collada.cpp b/editor/import/collada.cpp
index c1f577f176..2cc534d96d 100644
--- a/editor/import/collada.cpp
+++ b/editor/import/collada.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/collada.h b/editor/import/collada.h
index 5e38637504..b5e4cd9983 100644
--- a/editor/import/collada.h
+++ b/editor/import/collada.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/dynamicfont_import_settings.cpp b/editor/import/dynamicfont_import_settings.cpp
index b63c2bf350..3151496bec 100644
--- a/editor/import/dynamicfont_import_settings.cpp
+++ b/editor/import/dynamicfont_import_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -1185,6 +1185,38 @@ void DynamicFontImportSettings::_lang_remove(Object *p_item, int p_column, int p
memdelete(lang_item);
}
+void DynamicFontImportSettings::_ot_add() {
+ menu_ot->set_position(ot_list->get_screen_transform().xform(ot_list->get_local_mouse_position()));
+ menu_ot->set_size(Vector2(1, 1));
+ menu_ot->popup();
+}
+
+void DynamicFontImportSettings::_ot_add_item(int p_option) {
+ String name = TS->tag_to_name(p_option);
+ for (TreeItem *ot_item = ot_list_root->get_first_child(); ot_item; ot_item = ot_item->get_next()) {
+ if (ot_item->get_text(0) == name) {
+ return;
+ }
+ }
+ TreeItem *ot_item = ot_list->create_item(ot_list_root);
+ ERR_FAIL_NULL(ot_item);
+
+ ot_item->set_text(0, name);
+ ot_item->set_editable(0, false);
+ ot_item->set_text(1, "1");
+ ot_item->set_editable(1, true);
+ ot_item->add_button(2, ot_list->get_theme_icon("Remove", "EditorIcons"), BUTTON_REMOVE_VAR, false, TTR("Remove"));
+ ot_item->set_button_color(2, 0, Color(1, 1, 1, 0.75));
+}
+
+void DynamicFontImportSettings::_ot_remove(Object *p_item, int p_column, int p_id) {
+ TreeItem *ot_item = (TreeItem *)p_item;
+ ERR_FAIL_NULL(ot_item);
+
+ ot_list_root->remove_child(ot_item);
+ memdelete(ot_item);
+}
+
void DynamicFontImportSettings::_script_add() {
menu_scripts->set_position(script_list->get_screen_position() + script_list->get_local_mouse_position());
menu_scripts->reset_size();
@@ -1230,6 +1262,7 @@ void DynamicFontImportSettings::_notification(int p_what) {
add_lang->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
add_script->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
add_var->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
+ add_ot->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
}
}
@@ -1317,6 +1350,14 @@ void DynamicFontImportSettings::_re_import() {
main_settings["preload/glyph_ranges"] = ranges;
}
+ Dictionary ot_ov;
+ for (TreeItem *ot_item = ot_list_root->get_first_child(); ot_item; ot_item = ot_item->get_next()) {
+ String tag = ot_item->get_text(0);
+ int32_t value = ot_item->get_text(1).to_int();
+ ot_ov[tag] = value;
+ }
+ main_settings["opentype_feature_overrides"] = ot_ov;
+
if (OS::get_singleton()->is_stdout_verbose()) {
print_line("Import settings:");
for (Map<StringName, Variant>::Element *E = main_settings.front(); E; E = E->next()) {
@@ -1373,6 +1414,7 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
vars_list->clear();
lang_list->clear();
script_list->clear();
+ ot_list->clear();
selected_chars.clear();
selected_glyphs.clear();
@@ -1381,6 +1423,7 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
vars_list_root = vars_list->create_item();
lang_list_root = lang_list->create_item();
script_list_root = script_list->create_item();
+ ot_list_root = ot_list->create_item();
options_variations.clear();
Dictionary var_list = dfont_main->get_supported_variation_list();
@@ -1546,6 +1589,23 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
script_item->set_editable(1, true);
script_item->add_button(2, lang_list->get_theme_icon("Remove", "EditorIcons"), BUTTON_REMOVE_VAR, false, TTR("Remove"));
}
+ } else if (key == "opentype_feature_overrides") {
+ Dictionary features = config->get_value("params", key);
+ for (const Variant *ftr = features.next(nullptr); ftr != nullptr; ftr = features.next(ftr)) {
+ TreeItem *ot_item = ot_list->create_item(ot_list_root);
+ ERR_FAIL_NULL(ot_item);
+ int32_t value = features[*ftr];
+ if (ftr->get_type() == Variant::STRING) {
+ ot_item->set_text(0, *ftr);
+ } else {
+ ot_item->set_text(0, TS->tag_to_name(*ftr));
+ }
+ ot_item->set_editable(0, false);
+ ot_item->set_text(1, itos(value));
+ ot_item->set_editable(1, true);
+ ot_item->add_button(2, ot_list->get_theme_icon("Remove", "EditorIcons"), BUTTON_REMOVE_VAR, false, TTR("Remove"));
+ ot_item->set_button_color(2, 0, Color(1, 1, 1, 0.75));
+ }
} else {
Variant value = config->get_value("params", key);
import_settings_data->defaults[key] = value;
@@ -1570,6 +1630,39 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
font_preview_label->add_theme_font_override("font", font_preview);
font_preview_label->update();
+ menu_ot->clear();
+ menu_ot_ss->clear();
+ menu_ot_cv->clear();
+ menu_ot_cu->clear();
+ bool have_ss = false;
+ bool have_cv = false;
+ bool have_cu = false;
+ Dictionary features = font_preview->get_feature_list();
+ for (const Variant *ftr = features.next(nullptr); ftr != nullptr; ftr = features.next(ftr)) {
+ String ftr_name = TS->tag_to_name(*ftr);
+ if (ftr_name.begins_with("stylistic_set_")) {
+ menu_ot_ss->add_item(ftr_name.capitalize(), (int32_t)*ftr);
+ have_ss = true;
+ } else if (ftr_name.begins_with("character_variant_")) {
+ menu_ot_cv->add_item(ftr_name.capitalize(), (int32_t)*ftr);
+ have_cv = true;
+ } else if (ftr_name.begins_with("custom_")) {
+ menu_ot_cu->add_item(ftr_name.replace("custom_", ""), (int32_t)*ftr);
+ have_cu = true;
+ } else {
+ menu_ot->add_item(ftr_name.capitalize(), (int32_t)*ftr);
+ }
+ }
+ if (have_ss) {
+ menu_ot->add_submenu_item(RTR("Stylistic Sets"), "SSMenu");
+ }
+ if (have_cv) {
+ menu_ot->add_submenu_item(RTR("Character Variants"), "CVMenu");
+ }
+ if (have_cu) {
+ menu_ot->add_submenu_item(RTR("Custom"), "CUMenu");
+ }
+
_variations_validate();
popup_centered_ratio();
@@ -1619,6 +1712,25 @@ DynamicFontImportSettings::DynamicFontImportSettings() {
add_child(menu_scripts);
menu_scripts->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_script_add_item));
+ menu_ot = memnew(PopupMenu);
+ add_child(menu_ot);
+ menu_ot->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item));
+
+ menu_ot_cv = memnew(PopupMenu);
+ menu_ot_cv->set_name("CVMenu");
+ menu_ot->add_child(menu_ot_cv);
+ menu_ot_cv->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item));
+
+ menu_ot_ss = memnew(PopupMenu);
+ menu_ot_ss->set_name("SSMenu");
+ menu_ot->add_child(menu_ot_ss);
+ menu_ot_ss->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item));
+
+ menu_ot_cu = memnew(PopupMenu);
+ menu_ot_cu->set_name("CUMenu");
+ menu_ot->add_child(menu_ot_cu);
+ menu_ot_cu->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item));
+
Color warn_color = (EditorNode::get_singleton()) ? EditorNode::get_singleton()->get_gui_base()->get_theme_color("warning_color", "Editor") : Color(1, 1, 0);
// Root layout
@@ -1897,6 +2009,34 @@ DynamicFontImportSettings::DynamicFontImportSettings() {
script_list->connect("button_pressed", callable_mp(this, &DynamicFontImportSettings::_script_remove));
script_list->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ HBoxContainer *hb_ot = memnew(HBoxContainer);
+ page5_vb->add_child(hb_ot);
+
+ label_ot = memnew(Label);
+ label_ot->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER);
+ label_ot->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ label_ot->set_text(TTR("OpenType feature overrides"));
+ hb_ot->add_child(label_ot);
+
+ add_ot = memnew(Button);
+ hb_ot->add_child(add_ot);
+ add_ot->set_tooltip(TTR("Add feature override"));
+ add_ot->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
+ add_ot->connect("pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add));
+
+ ot_list = memnew(Tree);
+ page5_vb->add_child(ot_list);
+ ot_list->set_hide_root(true);
+ ot_list->set_columns(3);
+ ot_list->set_column_expand(0, true);
+ ot_list->set_column_custom_minimum_width(0, 80 * EDSCALE);
+ ot_list->set_column_expand(1, true);
+ ot_list->set_column_custom_minimum_width(1, 80 * EDSCALE);
+ ot_list->set_column_expand(2, false);
+ ot_list->set_column_custom_minimum_width(2, 50 * EDSCALE);
+ ot_list->connect("button_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_remove));
+ ot_list->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+
// Common
import_settings_data.instantiate();
diff --git a/editor/import/dynamicfont_import_settings.h b/editor/import/dynamicfont_import_settings.h
index 05f5e8e00b..89665ae476 100644
--- a/editor/import/dynamicfont_import_settings.h
+++ b/editor/import/dynamicfont_import_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -120,18 +120,27 @@ class DynamicFontImportSettings : public ConfirmationDialog {
Label *page5_description = nullptr;
Button *add_lang = nullptr;
Button *add_script = nullptr;
+ Button *add_ot = nullptr;
PopupMenu *menu_langs = nullptr;
PopupMenu *menu_scripts = nullptr;
+ PopupMenu *menu_ot = nullptr;
+ PopupMenu *menu_ot_ss = nullptr;
+ PopupMenu *menu_ot_cv = nullptr;
+ PopupMenu *menu_ot_cu = nullptr;
Tree *lang_list = nullptr;
TreeItem *lang_list_root = nullptr;
+ Label *label_langs = nullptr;
Tree *script_list = nullptr;
TreeItem *script_list_root = nullptr;
- Label *label_langs = nullptr;
Label *label_script = nullptr;
+ Tree *ot_list = nullptr;
+ TreeItem *ot_list_root = nullptr;
+ Label *label_ot = nullptr;
+
void _lang_add();
void _lang_add_item(int p_option);
void _lang_remove(Object *p_item, int p_column, int p_id);
@@ -140,6 +149,10 @@ class DynamicFontImportSettings : public ConfirmationDialog {
void _script_add_item(int p_option);
void _script_remove(Object *p_item, int p_column, int p_id);
+ void _ot_add();
+ void _ot_add_item(int p_option);
+ void _ot_remove(Object *p_item, int p_column, int p_id);
+
// Common
void _add_glyph_range_item(int32_t p_start, int32_t p_end, const String &p_name);
diff --git a/editor/import/editor_import_collada.cpp b/editor/import/editor_import_collada.cpp
index 91f8e5b910..22b2bd1ed4 100644
--- a/editor/import/editor_import_collada.cpp
+++ b/editor/import/editor_import_collada.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -1755,7 +1755,7 @@ void EditorSceneFormatImporterCollada::get_extensions(List<String> *r_extensions
r_extensions->push_back("dae");
}
-Node *EditorSceneFormatImporterCollada::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+Node *EditorSceneFormatImporterCollada::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
if (r_err) {
*r_err = OK;
}
@@ -1811,7 +1811,7 @@ Node *EditorSceneFormatImporterCollada::import_scene(const String &p_path, uint3
return state.scene;
}
-Ref<Animation> EditorSceneFormatImporterCollada::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
+Ref<Animation> EditorSceneFormatImporterCollada::import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) {
ColladaImport state;
state.use_mesh_builtin_materials = false;
diff --git a/editor/import/editor_import_collada.h b/editor/import/editor_import_collada.h
index 055a6fe178..c32d785d1c 100644
--- a/editor/import/editor_import_collada.h
+++ b/editor/import/editor_import_collada.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -39,8 +39,8 @@ class EditorSceneFormatImporterCollada : public EditorSceneFormatImporter {
public:
virtual uint32_t get_import_flags() const override;
virtual void get_extensions(List<String> *r_extensions) const override;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps = nullptr, Error *r_err = nullptr) override;
- virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) override;
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps = nullptr, Error *r_err = nullptr) override;
+ virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) override;
EditorSceneFormatImporterCollada();
};
diff --git a/editor/import/editor_import_plugin.cpp b/editor/import/editor_import_plugin.cpp
index 1a002569c5..cf3464b168 100644
--- a/editor/import/editor_import_plugin.cpp
+++ b/editor/import/editor_import_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/editor_import_plugin.h b/editor/import/editor_import_plugin.h
index 6c5f4f6005..6cff8fb917 100644
--- a/editor/import/editor_import_plugin.h
+++ b/editor/import/editor_import_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_bitmask.cpp b/editor/import/resource_importer_bitmask.cpp
index c43052593d..16b68bcc22 100644
--- a/editor/import/resource_importer_bitmask.cpp
+++ b/editor/import/resource_importer_bitmask.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_bitmask.h b/editor/import/resource_importer_bitmask.h
index f3da5f9a31..e5cf1facff 100644
--- a/editor/import/resource_importer_bitmask.h
+++ b/editor/import/resource_importer_bitmask.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_bmfont.cpp b/editor/import/resource_importer_bmfont.cpp
index f54065416e..fa560e8eb1 100644
--- a/editor/import/resource_importer_bmfont.cpp
+++ b/editor/import/resource_importer_bmfont.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_bmfont.h b/editor/import/resource_importer_bmfont.h
index 64d536535c..e5a96e2c40 100644
--- a/editor/import/resource_importer_bmfont.h
+++ b/editor/import/resource_importer_bmfont.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_csv_translation.cpp b/editor/import/resource_importer_csv_translation.cpp
index 7a226802f2..448b318c64 100644
--- a/editor/import/resource_importer_csv_translation.cpp
+++ b/editor/import/resource_importer_csv_translation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_csv_translation.h b/editor/import/resource_importer_csv_translation.h
index de7ba3e3a0..8f6cf94984 100644
--- a/editor/import/resource_importer_csv_translation.h
+++ b/editor/import/resource_importer_csv_translation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_dynamicfont.cpp b/editor/import/resource_importer_dynamicfont.cpp
index f7363a565d..11f563a982 100644
--- a/editor/import/resource_importer_dynamicfont.cpp
+++ b/editor/import/resource_importer_dynamicfont.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -107,6 +107,7 @@ void ResourceImporterDynamicFont::get_import_options(const String &p_path, List<
r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0));
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "compress"), true));
+ r_options->push_back(ImportOption(PropertyInfo(Variant::DICTIONARY, "opentype_feature_overrides"), Dictionary()));
r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "preload/char_ranges"), Vector<String>()));
r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "preload/glyph_ranges"), Vector<String>()));
@@ -174,6 +175,7 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str
bool msdf = p_options["multichannel_signed_distance_field"];
int px_range = p_options["msdf_pixel_range"];
int px_size = p_options["msdf_size"];
+ Dictionary ot_ov = p_options["opentype_feature_overrides"];
bool autohinter = p_options["force_autohinter"];
int hinting = p_options["hinting"];
@@ -190,6 +192,7 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str
font->set_multichannel_signed_distance_field(msdf);
font->set_msdf_pixel_range(px_range);
font->set_msdf_size(px_size);
+ font->set_opentype_feature_overrides(ot_ov);
font->set_fixed_size(0);
font->set_force_autohinter(autohinter);
font->set_hinting((TextServer::Hinting)hinting);
diff --git a/editor/import/resource_importer_dynamicfont.h b/editor/import/resource_importer_dynamicfont.h
index cb5294b9dd..a55d639e10 100644
--- a/editor/import/resource_importer_dynamicfont.h
+++ b/editor/import/resource_importer_dynamicfont.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_image.cpp b/editor/import/resource_importer_image.cpp
index 45cb5e2f9d..e6a822d827 100644
--- a/editor/import/resource_importer_image.cpp
+++ b/editor/import/resource_importer_image.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_image.h b/editor/import/resource_importer_image.h
index b7131ec850..81aedc91e8 100644
--- a/editor/import/resource_importer_image.h
+++ b/editor/import/resource_importer_image.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_imagefont.cpp b/editor/import/resource_importer_imagefont.cpp
index 04a68e4a53..0a15284ef5 100644
--- a/editor/import/resource_importer_imagefont.cpp
+++ b/editor/import/resource_importer_imagefont.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_imagefont.h b/editor/import/resource_importer_imagefont.h
index d600c35e1c..c1116d5a83 100644
--- a/editor/import/resource_importer_imagefont.h
+++ b/editor/import/resource_importer_imagefont.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp
index 89c62ab5cb..5876d6df0b 100644
--- a/editor/import/resource_importer_layered_texture.cpp
+++ b/editor/import/resource_importer_layered_texture.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -392,7 +392,7 @@ Error ResourceImporterLayeredTexture::import(const String &p_source_file, const
bool can_s3tc = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_s3tc");
if (can_bptc) {
- formats_imported.push_back("bptc"); //needs to be aded anyway
+ formats_imported.push_back("bptc"); // Needs to be added anyway.
}
bool can_compress_hdr = hdr_compression > 0;
diff --git a/editor/import/resource_importer_layered_texture.h b/editor/import/resource_importer_layered_texture.h
index 29dfe7263a..ee8e7dc615 100644
--- a/editor/import/resource_importer_layered_texture.h
+++ b/editor/import/resource_importer_layered_texture.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_obj.cpp b/editor/import/resource_importer_obj.cpp
index 9e3cdbdeff..96645665aa 100644
--- a/editor/import/resource_importer_obj.cpp
+++ b/editor/import/resource_importer_obj.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -424,7 +424,7 @@ static Error _parse_obj(const String &p_path, List<Ref<Mesh>> &r_meshes, bool p_
return OK;
}
-Node *EditorOBJImporter::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+Node *EditorOBJImporter::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
List<Ref<Mesh>> meshes;
Error err = _parse_obj(p_path, meshes, false, p_flags & IMPORT_GENERATE_TANGENT_ARRAYS, false, Vector3(1, 1, 1), Vector3(0, 0, 0), r_missing_deps);
@@ -459,7 +459,7 @@ Node *EditorOBJImporter::import_scene(const String &p_path, uint32_t p_flags, in
return scene;
}
-Ref<Animation> EditorOBJImporter::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
+Ref<Animation> EditorOBJImporter::import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) {
return Ref<Animation>();
}
diff --git a/editor/import/resource_importer_obj.h b/editor/import/resource_importer_obj.h
index c3e46b6eb5..d7e3f0209d 100644
--- a/editor/import/resource_importer_obj.h
+++ b/editor/import/resource_importer_obj.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -39,8 +39,8 @@ class EditorOBJImporter : public EditorSceneFormatImporter {
public:
virtual uint32_t get_import_flags() const override;
virtual void get_extensions(List<String> *r_extensions) const override;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
- virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) override;
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
+ virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) override;
EditorOBJImporter();
};
diff --git a/editor/import/resource_importer_scene.cpp b/editor/import/resource_importer_scene.cpp
index c7eb6181ba..e801cd4553 100644
--- a/editor/import/resource_importer_scene.cpp
+++ b/editor/import/resource_importer_scene.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -30,9 +30,9 @@
#include "resource_importer_scene.h"
+#include "core/error/error_macros.h"
#include "core/io/resource_saver.h"
#include "editor/editor_node.h"
-
#include "editor/import/scene_import_settings.h"
#include "scene/3d/area_3d.h"
#include "scene/3d/collision_shape_3d.h"
@@ -73,18 +73,26 @@ void EditorSceneFormatImporter::get_extensions(List<String> *r_extensions) const
ERR_FAIL();
}
-Node *EditorSceneFormatImporter::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
- Object *ret;
- if (GDVIRTUAL_CALL(_import_scene, p_path, p_flags, p_bake_fps, ret)) {
+Node *EditorSceneFormatImporter::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+ Dictionary options_dict;
+ for (const KeyValue<StringName, Variant> &elem : p_options) {
+ options_dict[elem.key] = elem.value;
+ }
+ Object *ret = nullptr;
+ if (GDVIRTUAL_CALL(_import_scene, p_path, p_flags, options_dict, p_bake_fps, ret)) {
return Object::cast_to<Node>(ret);
}
ERR_FAIL_V(nullptr);
}
-Ref<Animation> EditorSceneFormatImporter::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
+Ref<Animation> EditorSceneFormatImporter::import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) {
+ Dictionary options_dict;
+ for (const KeyValue<StringName, Variant> &elem : p_options) {
+ options_dict[elem.key] = elem.value;
+ }
Ref<Animation> ret;
- if (GDVIRTUAL_CALL(_import_animation, p_path, p_flags, p_bake_fps, ret)) {
+ if (GDVIRTUAL_CALL(_import_animation, p_path, p_flags, options_dict, p_bake_fps, ret)) {
return ret;
}
@@ -101,25 +109,11 @@ Variant EditorSceneFormatImporter::get_option_visibility(const String &p_path, c
return ret;
}
-//for documenters, these functions are useful when an importer calls an external conversion helper (like, fbx2gltf),
-//and you want to load the resulting file
-
-Node *EditorSceneFormatImporter::import_scene_from_other_importer(const String &p_path, uint32_t p_flags, int p_bake_fps) {
- return ResourceImporterScene::get_singleton()->import_scene_from_other_importer(this, p_path, p_flags, p_bake_fps);
-}
-
-Ref<Animation> EditorSceneFormatImporter::import_animation_from_other_importer(const String &p_path, uint32_t p_flags, int p_bake_fps) {
- return ResourceImporterScene::get_singleton()->import_animation_from_other_importer(this, p_path, p_flags, p_bake_fps);
-}
-
void EditorSceneFormatImporter::_bind_methods() {
- ClassDB::bind_method(D_METHOD("import_scene_from_other_importer", "path", "flags", "bake_fps"), &EditorSceneFormatImporter::import_scene_from_other_importer);
- ClassDB::bind_method(D_METHOD("import_animation_from_other_importer", "path", "flags", "bake_fps"), &EditorSceneFormatImporter::import_animation_from_other_importer);
-
GDVIRTUAL_BIND(_get_import_flags);
GDVIRTUAL_BIND(_get_extensions);
- GDVIRTUAL_BIND(_import_scene, "path", "flags", "bake_fps");
- GDVIRTUAL_BIND(_import_animation, "path", "flags", "bake_fps");
+ GDVIRTUAL_BIND(_import_scene, "path", "flags", "options", "bake_fps");
+ GDVIRTUAL_BIND(_import_animation, "path", "flags", "options", "bake_fps");
GDVIRTUAL_BIND(_get_import_options, "path");
GDVIRTUAL_BIND(_get_option_visibility, "path", "option");
@@ -1473,64 +1467,6 @@ void ResourceImporterScene::_replace_owner(Node *p_node, Node *p_scene, Node *p_
}
}
-Node *ResourceImporterScene::import_scene_from_other_importer(EditorSceneFormatImporter *p_exception, const String &p_path, uint32_t p_flags, int p_bake_fps) {
- Ref<EditorSceneFormatImporter> importer;
- String ext = p_path.get_extension().to_lower();
-
- for (Set<Ref<EditorSceneFormatImporter>>::Element *E = importers.front(); E; E = E->next()) {
- if (E->get().ptr() == p_exception) {
- continue;
- }
- List<String> extensions;
- E->get()->get_extensions(&extensions);
-
- for (const String &F : extensions) {
- if (F.to_lower() == ext) {
- importer = E->get();
- break;
- }
- }
-
- if (importer.is_valid()) {
- break;
- }
- }
-
- ERR_FAIL_COND_V(!importer.is_valid(), nullptr);
-
- List<String> missing;
- Error err;
- return importer->import_scene(p_path, p_flags, p_bake_fps, &missing, &err);
-}
-
-Ref<Animation> ResourceImporterScene::import_animation_from_other_importer(EditorSceneFormatImporter *p_exception, const String &p_path, uint32_t p_flags, int p_bake_fps) {
- Ref<EditorSceneFormatImporter> importer;
- String ext = p_path.get_extension().to_lower();
-
- for (Set<Ref<EditorSceneFormatImporter>>::Element *E = importers.front(); E; E = E->next()) {
- if (E->get().ptr() == p_exception) {
- continue;
- }
- List<String> extensions;
- E->get()->get_extensions(&extensions);
-
- for (const String &F : extensions) {
- if (F.to_lower() == ext) {
- importer = E->get();
- break;
- }
- }
-
- if (importer.is_valid()) {
- break;
- }
- }
-
- ERR_FAIL_COND_V(!importer.is_valid(), nullptr);
-
- return importer->import_animation(p_path, p_flags, p_bake_fps);
-}
-
void ResourceImporterScene::_generate_meshes(Node *p_node, const Dictionary &p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<uint8_t> &p_src_lightmap_cache, Vector<Vector<uint8_t>> &r_lightmap_caches) {
ImporterMeshInstance3D *src_mesh_node = Object::cast_to<ImporterMeshInstance3D>(p_node);
if (src_mesh_node) {
@@ -1886,7 +1822,7 @@ Node *ResourceImporterScene::pre_import(const String &p_source_file) {
ERR_FAIL_COND_V(!importer.is_valid(), nullptr);
Error err = OK;
- Node *scene = importer->import_scene(p_source_file, EditorSceneFormatImporter::IMPORT_ANIMATION | EditorSceneFormatImporter::IMPORT_GENERATE_TANGENT_ARRAYS, 15, nullptr, &err);
+ Node *scene = importer->import_scene(p_source_file, EditorSceneFormatImporter::IMPORT_ANIMATION | EditorSceneFormatImporter::IMPORT_GENERATE_TANGENT_ARRAYS, Map<StringName, Variant>(), 15, nullptr, &err);
if (!scene || err != OK) {
return nullptr;
}
@@ -1944,7 +1880,7 @@ Error ResourceImporterScene::import(const String &p_source_file, const String &p
Error err = OK;
List<String> missing_deps; // for now, not much will be done with this
- Node *scene = importer->import_scene(src_path, import_flags, fps, &missing_deps, &err);
+ Node *scene = importer->import_scene(src_path, import_flags, p_options, fps, &missing_deps, &err);
if (!scene || err != OK) {
return err;
}
@@ -2121,7 +2057,7 @@ void EditorSceneFormatImporterESCN::get_extensions(List<String> *r_extensions) c
r_extensions->push_back("escn");
}
-Node *EditorSceneFormatImporterESCN::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+Node *EditorSceneFormatImporterESCN::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
Error error;
Ref<PackedScene> ps = ResourceFormatLoaderText::singleton->load(p_path, p_path, &error);
ERR_FAIL_COND_V_MSG(!ps.is_valid(), nullptr, "Cannot load scene as text resource from path '" + p_path + "'.");
@@ -2132,6 +2068,6 @@ Node *EditorSceneFormatImporterESCN::import_scene(const String &p_path, uint32_t
return scene;
}
-Ref<Animation> EditorSceneFormatImporterESCN::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
+Ref<Animation> EditorSceneFormatImporterESCN::import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) {
ERR_FAIL_V(Ref<Animation>());
}
diff --git a/editor/import/resource_importer_scene.h b/editor/import/resource_importer_scene.h
index 5437ecd159..00d095eac1 100644
--- a/editor/import/resource_importer_scene.h
+++ b/editor/import/resource_importer_scene.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -31,7 +31,9 @@
#ifndef RESOURCEIMPORTERSCENE_H
#define RESOURCEIMPORTERSCENE_H
+#include "core/error/error_macros.h"
#include "core/io/resource_importer.h"
+#include "core/variant/dictionary.h"
#include "scene/3d/node_3d.h"
#include "scene/resources/animation.h"
#include "scene/resources/mesh.h"
@@ -48,13 +50,13 @@ class EditorSceneFormatImporter : public RefCounted {
protected:
static void _bind_methods();
- Node *import_scene_from_other_importer(const String &p_path, uint32_t p_flags, int p_bake_fps);
- Ref<Animation> import_animation_from_other_importer(const String &p_path, uint32_t p_flags, int p_bake_fps);
+ Node *import_scene_wrapper(const String &p_path, uint32_t p_flags, Dictionary p_options, int p_bake_fps);
+ Ref<Animation> import_animation_wrapper(const String &p_path, uint32_t p_flags, Dictionary p_options, int p_bake_fps);
GDVIRTUAL0RC(int, _get_import_flags)
GDVIRTUAL0RC(Vector<String>, _get_extensions)
- GDVIRTUAL3R(Object *, _import_scene, String, uint32_t, uint32_t)
- GDVIRTUAL3R(Ref<Animation>, _import_animation, String, uint32_t, uint32_t)
+ GDVIRTUAL4R(Object *, _import_scene, String, uint32_t, Dictionary, uint32_t)
+ GDVIRTUAL4R(Ref<Animation>, _import_animation, String, uint32_t, Dictionary, uint32_t)
GDVIRTUAL1(_get_import_options, String)
GDVIRTUAL2RC(Variant, _get_option_visibility, String, String)
@@ -69,8 +71,8 @@ public:
virtual uint32_t get_import_flags() const;
virtual void get_extensions(List<String> *r_extensions) const;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr);
- virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps);
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr);
+ virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps);
virtual void get_import_options(const String &p_path, List<ResourceImporter::ImportOption> *r_options);
virtual Variant get_option_visibility(const String &p_path, const String &p_option, const Map<StringName, Variant> &p_options);
@@ -270,9 +272,6 @@ public:
Node *pre_import(const String &p_source_file);
virtual Error import(const String &p_source_file, const String &p_save_path, const Map<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files = nullptr, Variant *r_metadata = nullptr) override;
- Node *import_scene_from_other_importer(EditorSceneFormatImporter *p_exception, const String &p_path, uint32_t p_flags, int p_bake_fps);
- Ref<Animation> import_animation_from_other_importer(EditorSceneFormatImporter *p_exception, const String &p_path, uint32_t p_flags, int p_bake_fps);
-
virtual bool has_advanced_options() const override;
virtual void show_advanced_options(const String &p_path) override;
@@ -293,8 +292,8 @@ class EditorSceneFormatImporterESCN : public EditorSceneFormatImporter {
public:
virtual uint32_t get_import_flags() const override;
virtual void get_extensions(List<String> *r_extensions) const override;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
- virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) override;
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
+ virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) override;
};
#include "scene/resources/box_shape_3d.h"
diff --git a/editor/import/resource_importer_shader_file.cpp b/editor/import/resource_importer_shader_file.cpp
index 797e11f5ea..cc34259a2d 100644
--- a/editor/import/resource_importer_shader_file.cpp
+++ b/editor/import/resource_importer_shader_file.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_shader_file.h b/editor/import/resource_importer_shader_file.h
index 3ed489e9fb..858c2e783c 100644
--- a/editor/import/resource_importer_shader_file.h
+++ b/editor/import/resource_importer_shader_file.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp
index 5ca61e4c39..59550a3ee3 100644
--- a/editor/import/resource_importer_texture.cpp
+++ b/editor/import/resource_importer_texture.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_texture.h b/editor/import/resource_importer_texture.h
index cb9d1b08cd..ea2318fb33 100644
--- a/editor/import/resource_importer_texture.h
+++ b/editor/import/resource_importer_texture.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_texture_atlas.cpp b/editor/import/resource_importer_texture_atlas.cpp
index 048d84d1f9..d2a9fe2538 100644
--- a/editor/import/resource_importer_texture_atlas.cpp
+++ b/editor/import/resource_importer_texture_atlas.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_texture_atlas.h b/editor/import/resource_importer_texture_atlas.h
index 177ef949ac..a5e47dee99 100644
--- a/editor/import/resource_importer_texture_atlas.h
+++ b/editor/import/resource_importer_texture_atlas.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_wav.cpp b/editor/import/resource_importer_wav.cpp
index 820eba951f..8cb9a47fb5 100644
--- a/editor/import/resource_importer_wav.cpp
+++ b/editor/import/resource_importer_wav.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/resource_importer_wav.h b/editor/import/resource_importer_wav.h
index e3e605aeb2..a5b576ceb9 100644
--- a/editor/import/resource_importer_wav.h
+++ b/editor/import/resource_importer_wav.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp
index a376596f9b..eed1888c6a 100644
--- a/editor/import/scene_import_settings.cpp
+++ b/editor/import/scene_import_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import/scene_import_settings.h b/editor/import/scene_import_settings.h
index c7c94af493..4edf05c7bb 100644
--- a/editor/import/scene_import_settings.h
+++ b/editor/import/scene_import_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import_defaults_editor.cpp b/editor/import_defaults_editor.cpp
index 4b69810861..15d3c4b3ee 100644
--- a/editor/import_defaults_editor.cpp
+++ b/editor/import_defaults_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import_defaults_editor.h b/editor/import_defaults_editor.h
index c1becac5e9..e84e4b6646 100644
--- a/editor/import_defaults_editor.h
+++ b/editor/import_defaults_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp
index 3507eaff94..10654cfe43 100644
--- a/editor/import_dock.cpp
+++ b/editor/import_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -31,6 +31,7 @@
#include "import_dock.h"
#include "editor_node.h"
#include "editor_resource_preview.h"
+#include "editor_scale.h"
class ImportDockParameters : public Object {
GDCLASS(ImportDockParameters, Object);
@@ -135,6 +136,8 @@ void ImportDock::set_edit_path(const String &p_path) {
_set_dirty(false);
import_as->set_disabled(false);
preset->set_disabled(false);
+ content->show();
+ select_a_resource->hide();
imported->set_text(p_path.get_file());
}
@@ -294,6 +297,8 @@ void ImportDock::set_edit_multiple_paths(const Vector<String> &p_paths) {
_set_dirty(false);
import_as->set_disabled(false);
preset->set_disabled(false);
+ content->show();
+ select_a_resource->hide();
imported->set_text(vformat(TTR("%d Files"), p_paths.size()));
@@ -423,6 +428,8 @@ void ImportDock::clear() {
params->properties.clear();
params->update();
preset->get_popup()->clear();
+ content->hide();
+ select_a_resource->show();
}
static bool _find_owners(EditorFileSystemDirectory *efsd, const String &p_path) {
@@ -600,12 +607,18 @@ void ImportDock::initialize_import_options() const {
ImportDock::ImportDock() {
set_name("Import");
+
+ content = memnew(VBoxContainer);
+ content->set_v_size_flags(SIZE_EXPAND_FILL);
+ add_child(content);
+ content->hide();
+
imported = memnew(Label);
imported->add_theme_style_override("normal", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox(SNAME("normal"), SNAME("LineEdit")));
imported->set_clip_text(true);
- add_child(imported);
+ content->add_child(imported);
HBoxContainer *hb = memnew(HBoxContainer);
- add_margin_child(TTR("Import As:"), hb);
+ content->add_margin_child(TTR("Import As:"), hb);
import_as = memnew(OptionButton);
import_as->set_disabled(true);
import_as->connect("item_selected", callable_mp(this, &ImportDock::_importer_selected));
@@ -618,13 +631,13 @@ ImportDock::ImportDock() {
hb->add_child(preset);
import_opts = memnew(EditorInspector);
- add_child(import_opts);
+ content->add_child(import_opts);
import_opts->set_v_size_flags(SIZE_EXPAND_FILL);
import_opts->connect("property_edited", callable_mp(this, &ImportDock::_property_edited));
import_opts->connect("property_toggled", callable_mp(this, &ImportDock::_property_toggled));
hb = memnew(HBoxContainer);
- add_child(hb);
+ content->add_child(hb);
import = memnew(Button);
import->set_text(TTR("Reimport"));
import->set_disabled(true);
@@ -652,7 +665,7 @@ ImportDock::ImportDock() {
reimport_confirm = memnew(ConfirmationDialog);
reimport_confirm->get_ok_button()->set_text(TTR("Save Scenes, Re-Import, and Restart"));
- add_child(reimport_confirm);
+ content->add_child(reimport_confirm);
reimport_confirm->connect("confirmed", callable_mp(this, &ImportDock::_reimport_and_restart));
VBoxContainer *vbc_confirm = memnew(VBoxContainer());
@@ -662,6 +675,15 @@ ImportDock::ImportDock() {
reimport_confirm->add_child(vbc_confirm);
params = memnew(ImportDockParameters);
+
+ select_a_resource = memnew(Label);
+ select_a_resource->set_text(TTR("Select a resource file in the filesystem or in the inspector to adjust import settings."));
+ select_a_resource->set_autowrap_mode(Label::AUTOWRAP_WORD);
+ select_a_resource->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
+ select_a_resource->set_v_size_flags(SIZE_EXPAND_FILL);
+ select_a_resource->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER);
+ select_a_resource->set_vertical_alignment(VERTICAL_ALIGNMENT_CENTER);
+ add_child(select_a_resource);
}
ImportDock::~ImportDock() {
diff --git a/editor/import_dock.h b/editor/import_dock.h
index ac73f3e3c0..33fc23f1b4 100644
--- a/editor/import_dock.h
+++ b/editor/import_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -62,6 +62,9 @@ class ImportDock : public VBoxContainer {
ImportDockParameters *params;
+ VBoxContainer *content;
+ Label *select_a_resource;
+
void _preset_selected(int p_idx);
void _importer_selected(int i_idx);
void _update_options(const String &p_path, const Ref<ConfigFile> &p_config = Ref<ConfigFile>());
diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp
index f594a5a3a8..ccb287e433 100644
--- a/editor/inspector_dock.cpp
+++ b/editor/inspector_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/inspector_dock.h b/editor/inspector_dock.h
index 5bf6a34617..94e4f67348 100644
--- a/editor/inspector_dock.h
+++ b/editor/inspector_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -32,7 +32,6 @@
#define INSPECTOR_DOCK_H
#include "editor/animation_track_editor.h"
-#include "editor/connections_dialog.h"
#include "editor/create_dialog.h"
#include "editor/editor_data.h"
#include "editor/editor_inspector.h"
diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp
index 9d48a43d4d..a902b070f4 100644
--- a/editor/localization_editor.cpp
+++ b/editor/localization_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/localization_editor.h b/editor/localization_editor.h
index 23cea06fbe..4c77aca397 100644
--- a/editor/localization_editor.h
+++ b/editor/localization_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/multi_node_edit.cpp b/editor/multi_node_edit.cpp
index 1a30770b53..59fc473d73 100644
--- a/editor/multi_node_edit.cpp
+++ b/editor/multi_node_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/multi_node_edit.h b/editor/multi_node_edit.h
index 2efecb9f65..31678d7b01 100644
--- a/editor/multi_node_edit.h
+++ b/editor/multi_node_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/node_dock.cpp b/editor/node_dock.cpp
index c3dc7eae28..d8f16b367a 100644
--- a/editor/node_dock.cpp
+++ b/editor/node_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -30,6 +30,7 @@
#include "node_dock.h"
+#include "connections_dialog.h"
#include "editor_node.h"
#include "editor_scale.h"
diff --git a/editor/node_dock.h b/editor/node_dock.h
index 280369bb09..b35be8de8a 100644
--- a/editor/node_dock.h
+++ b/editor/node_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -31,9 +31,10 @@
#ifndef NODE_DOCK_H
#define NODE_DOCK_H
-#include "connections_dialog.h"
#include "groups_editor.h"
+class ConnectionsDock;
+
class NodeDock : public VBoxContainer {
GDCLASS(NodeDock, VBoxContainer);
diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp
index ad22aafb2b..5786d24d23 100644
--- a/editor/plugin_config_dialog.cpp
+++ b/editor/plugin_config_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -36,12 +36,6 @@
#include "editor/editor_plugin.h"
#include "editor/editor_scale.h"
#include "editor/project_settings_editor.h"
-#include "scene/gui/grid_container.h"
-
-#include "modules/modules_enabled.gen.h" // For gdscript.
-#ifdef MODULE_GDSCRIPT_ENABLED
-#include "modules/gdscript/gdscript.h"
-#endif
void PluginConfigDialog::_clear_fields() {
name_edit->set_text("");
@@ -76,42 +70,16 @@ void PluginConfigDialog::_on_confirmed() {
String lang_name = ScriptServer::get_language(lang_idx)->get_name();
Ref<Script> script;
-
- // TODO Use script templates. Right now, this code won't add the 'tool' annotation to other languages.
- // TODO Better support script languages with named classes (has_named_classes).
-
- // FIXME: It's hacky to have hardcoded access to the GDScript module here.
- // The editor code should not have to know what languages are enabled.
-#ifdef MODULE_GDSCRIPT_ENABLED
- if (lang_name == GDScriptLanguage::get_singleton()->get_name()) {
- // Hard-coded GDScript template to keep usability until we use script templates.
- Ref<Script> gdscript = memnew(GDScript);
- gdscript->set_source_code(
- "@tool\n"
- "extends EditorPlugin\n"
- "\n"
- "\n"
- "func _enter_tree()%VOID_RETURN%:\n"
- "%TS%pass\n"
- "\n"
- "\n"
- "func _exit_tree()%VOID_RETURN%:\n"
- "%TS%pass\n");
- GDScriptLanguage::get_singleton()->make_template("", "", gdscript);
- String script_path = path.plus_file(script_edit->get_text());
- gdscript->set_path(script_path);
- ResourceSaver::save(script_path, gdscript);
- script = gdscript;
- } else {
-#endif
- String script_path = path.plus_file(script_edit->get_text());
- String class_name = script_path.get_file().get_basename();
- script = ScriptServer::get_language(lang_idx)->get_template(class_name, "EditorPlugin");
- script->set_path(script_path);
- ResourceSaver::save(script_path, script);
-#ifdef MODULE_GDSCRIPT_ENABLED
+ String script_path = path.plus_file(script_edit->get_text());
+ String class_name = script_path.get_file().get_basename();
+ String template_content = "";
+ Vector<ScriptLanguage::ScriptTemplate> templates = ScriptServer::get_language(lang_idx)->get_built_in_templates("EditorPlugin");
+ if (templates.size() > 0) {
+ template_content = templates.get(0).content;
}
-#endif
+ script = ScriptServer::get_language(lang_idx)->make_template(template_content, class_name, "EditorPlugin");
+ script->set_path(script_path);
+ ResourceSaver::save(script_path, script);
emit_signal(SNAME("plugin_ready"), script.operator->(), active_edit->is_pressed() ? _to_absolute_plugin_path(subfolder_edit->get_text()) : "");
} else {
@@ -331,11 +299,9 @@ PluginConfigDialog::PluginConfigDialog() {
for (int i = 0; i < ScriptServer::get_language_count(); i++) {
ScriptLanguage *lang = ScriptServer::get_language(i);
script_option_edit->add_item(lang->get_name());
-#ifdef MODULE_GDSCRIPT_ENABLED
- if (lang == GDScriptLanguage::get_singleton()) {
+ if (lang->get_name() == "GDScript") {
default_lang = i;
}
-#endif
}
script_option_edit->select(default_lang);
grid->add_child(script_option_edit);
diff --git a/editor/plugin_config_dialog.h b/editor/plugin_config_dialog.h
index 45fcdb6b6e..0dc2e84a98 100644
--- a/editor/plugin_config_dialog.h
+++ b/editor/plugin_config_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp
index 72d94e61ca..348ef4ecc7 100644
--- a/editor/plugins/abstract_polygon_2d_editor.cpp
+++ b/editor/plugins/abstract_polygon_2d_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/abstract_polygon_2d_editor.h b/editor/plugins/abstract_polygon_2d_editor.h
index 5fea8b75d6..8db5bf58dd 100644
--- a/editor/plugins/abstract_polygon_2d_editor.h
+++ b/editor/plugins/abstract_polygon_2d_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp
index f16ea36a23..3dcb769faf 100644
--- a/editor/plugins/animation_blend_space_1d_editor.cpp
+++ b/editor/plugins/animation_blend_space_1d_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_blend_space_1d_editor.h b/editor/plugins/animation_blend_space_1d_editor.h
index 503e066894..7906395c8f 100644
--- a/editor/plugins/animation_blend_space_1d_editor.h
+++ b/editor/plugins/animation_blend_space_1d_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp
index b107478724..459de5d35b 100644
--- a/editor/plugins/animation_blend_space_2d_editor.cpp
+++ b/editor/plugins/animation_blend_space_2d_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_blend_space_2d_editor.h b/editor/plugins/animation_blend_space_2d_editor.h
index 3b8b78b2b5..b46efff304 100644
--- a/editor/plugins/animation_blend_space_2d_editor.h
+++ b/editor/plugins/animation_blend_space_2d_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_blend_tree_editor_plugin.cpp b/editor/plugins/animation_blend_tree_editor_plugin.cpp
index d9a6f19384..9ebdede4e9 100644
--- a/editor/plugins/animation_blend_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_blend_tree_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_blend_tree_editor_plugin.h b/editor/plugins/animation_blend_tree_editor_plugin.h
index 68da5c6f79..8e63e39fd5 100644
--- a/editor/plugins/animation_blend_tree_editor_plugin.h
+++ b/editor/plugins/animation_blend_tree_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index 14390511de..4ce9f40a5e 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_player_editor_plugin.h b/editor/plugins/animation_player_editor_plugin.h
index 26bcff891d..4e7ea46c1d 100644
--- a/editor/plugins/animation_player_editor_plugin.h
+++ b/editor/plugins/animation_player_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp
index cf3bc58af9..94990636da 100644
--- a/editor/plugins/animation_state_machine_editor.cpp
+++ b/editor/plugins/animation_state_machine_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_state_machine_editor.h b/editor/plugins/animation_state_machine_editor.h
index a969ddd26b..8970e3e062 100644
--- a/editor/plugins/animation_state_machine_editor.h
+++ b/editor/plugins/animation_state_machine_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp
index d65ed9cea2..adfea236d3 100644
--- a/editor/plugins/animation_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_tree_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/animation_tree_editor_plugin.h b/editor/plugins/animation_tree_editor_plugin.h
index de3d89ae17..14c5658478 100644
--- a/editor/plugins/animation_tree_editor_plugin.h
+++ b/editor/plugins/animation_tree_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp
index 994e89d96f..49bef4acd5 100644
--- a/editor/plugins/asset_library_editor_plugin.cpp
+++ b/editor/plugins/asset_library_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -288,7 +288,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() {
preview = memnew(TextureRect);
previews_vbox->add_child(preview);
- preview->set_expand(true);
+ preview->set_ignore_texture_size(true);
preview->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED);
preview->set_custom_minimum_size(Size2(640 * EDSCALE, 345 * EDSCALE));
diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h
index 5fbf2833b2..d797608c24 100644
--- a/editor/plugins/asset_library_editor_plugin.h
+++ b/editor/plugins/asset_library_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/audio_stream_editor_plugin.cpp b/editor/plugins/audio_stream_editor_plugin.cpp
index c621ade5c8..086d5474ba 100644
--- a/editor/plugins/audio_stream_editor_plugin.cpp
+++ b/editor/plugins/audio_stream_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/audio_stream_editor_plugin.h b/editor/plugins/audio_stream_editor_plugin.h
index 14e829d025..db0e204616 100644
--- a/editor/plugins/audio_stream_editor_plugin.h
+++ b/editor/plugins/audio_stream_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/camera_3d_editor_plugin.cpp b/editor/plugins/camera_3d_editor_plugin.cpp
index 8583e95b25..7c920fa15e 100644
--- a/editor/plugins/camera_3d_editor_plugin.cpp
+++ b/editor/plugins/camera_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/camera_3d_editor_plugin.h b/editor/plugins/camera_3d_editor_plugin.h
index e087dd22a8..e175a931b0 100644
--- a/editor/plugins/camera_3d_editor_plugin.h
+++ b/editor/plugins/camera_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 4a19e7752e..089c37d7a6 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -2097,8 +2097,16 @@ bool CanvasItemEditor::_gui_input_move(const Ref<InputEvent> &p_event) {
if (k.is_valid() && k->is_pressed() && (tool == TOOL_SELECT || tool == TOOL_MOVE) &&
(k->get_keycode() == Key::UP || k->get_keycode() == Key::DOWN || k->get_keycode() == Key::LEFT || k->get_keycode() == Key::RIGHT)) {
if (!k->is_echo()) {
- // Start moving the canvas items with the keyboard
- drag_selection = _get_edited_canvas_items();
+ // Start moving the canvas items with the keyboard, if they are movable
+ List<CanvasItem *> selection = _get_edited_canvas_items();
+
+ drag_selection.clear();
+ for (CanvasItem *item : selection) {
+ if (_is_node_movable(item, true)) {
+ drag_selection.push_back(item);
+ }
+ }
+
drag_type = DRAG_KEY_MOVE;
drag_from = Vector2();
drag_to = Vector2();
@@ -5852,7 +5860,7 @@ bool CanvasItemEditorViewport::_create_instance(Node *parent, String &path, cons
instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(path));
- editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene);
+ editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene, true);
editor_data->get_undo_redo().add_do_method(instantiated_scene, "set_owner", editor->get_edited_scene());
editor_data->get_undo_redo().add_do_reference(instantiated_scene);
editor_data->get_undo_redo().add_undo_method(parent, "remove_child", instantiated_scene);
diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h
index b6576b7144..8bba5130d4 100644
--- a/editor/plugins/canvas_item_editor_plugin.h
+++ b/editor/plugins/canvas_item_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/collision_polygon_2d_editor_plugin.cpp b/editor/plugins/collision_polygon_2d_editor_plugin.cpp
index 8e340b28ef..22d3768a97 100644
--- a/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/collision_polygon_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/collision_polygon_2d_editor_plugin.h b/editor/plugins/collision_polygon_2d_editor_plugin.h
index e78c486a39..cf2e452937 100644
--- a/editor/plugins/collision_polygon_2d_editor_plugin.h
+++ b/editor/plugins/collision_polygon_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/collision_polygon_3d_editor_plugin.cpp b/editor/plugins/collision_polygon_3d_editor_plugin.cpp
index 4c728ff757..bf6485f9ec 100644
--- a/editor/plugins/collision_polygon_3d_editor_plugin.cpp
+++ b/editor/plugins/collision_polygon_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/collision_polygon_3d_editor_plugin.h b/editor/plugins/collision_polygon_3d_editor_plugin.h
index 10b0adf76c..cd8c857398 100644
--- a/editor/plugins/collision_polygon_3d_editor_plugin.h
+++ b/editor/plugins/collision_polygon_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/collision_shape_2d_editor_plugin.cpp b/editor/plugins/collision_shape_2d_editor_plugin.cpp
index 94fd9a5a08..8a5df6ac50 100644
--- a/editor/plugins/collision_shape_2d_editor_plugin.cpp
+++ b/editor/plugins/collision_shape_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/collision_shape_2d_editor_plugin.h b/editor/plugins/collision_shape_2d_editor_plugin.h
index ab95600a52..1c01b7019f 100644
--- a/editor/plugins/collision_shape_2d_editor_plugin.h
+++ b/editor/plugins/collision_shape_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/cpu_particles_2d_editor_plugin.cpp b/editor/plugins/cpu_particles_2d_editor_plugin.cpp
index fb9f8696fe..e0364dc952 100644
--- a/editor/plugins/cpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/cpu_particles_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/cpu_particles_2d_editor_plugin.h b/editor/plugins/cpu_particles_2d_editor_plugin.h
index b188df8e96..e54e1651bd 100644
--- a/editor/plugins/cpu_particles_2d_editor_plugin.h
+++ b/editor/plugins/cpu_particles_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/cpu_particles_3d_editor_plugin.cpp b/editor/plugins/cpu_particles_3d_editor_plugin.cpp
index fc52cd0f99..bb10c04e8f 100644
--- a/editor/plugins/cpu_particles_3d_editor_plugin.cpp
+++ b/editor/plugins/cpu_particles_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/cpu_particles_3d_editor_plugin.h b/editor/plugins/cpu_particles_3d_editor_plugin.h
index 9dced3ea86..67cc156680 100644
--- a/editor/plugins/cpu_particles_3d_editor_plugin.h
+++ b/editor/plugins/cpu_particles_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/curve_editor_plugin.cpp b/editor/plugins/curve_editor_plugin.cpp
index 3bb707d415..a9a276fc18 100644
--- a/editor/plugins/curve_editor_plugin.cpp
+++ b/editor/plugins/curve_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -803,11 +803,8 @@ Ref<Texture2D> CurvePreviewGenerator::generate(const Ref<Resource> &p_from, cons
im.create(thumbnail_size, thumbnail_size / 2, false, Image::FORMAT_RGBA8);
Color bg_color(0.1, 0.1, 0.1, 1.0);
- for (int i = 0; i < thumbnail_size; i++) {
- for (int j = 0; j < thumbnail_size / 2; j++) {
- im.set_pixel(i, j, bg_color);
- }
- }
+
+ im.fill(bg_color);
Color line_color(0.8, 0.8, 0.8, 1.0);
float range_y = curve.get_max_value() - curve.get_min_value();
diff --git a/editor/plugins/curve_editor_plugin.h b/editor/plugins/curve_editor_plugin.h
index c351f6ebe9..c7e8dea75a 100644
--- a/editor/plugins/curve_editor_plugin.h
+++ b/editor/plugins/curve_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp
index 51e1b639a4..6e43130a92 100644
--- a/editor/plugins/debugger_editor_plugin.cpp
+++ b/editor/plugins/debugger_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/debugger_editor_plugin.h b/editor/plugins/debugger_editor_plugin.h
index a6fab01c29..6fc83cd438 100644
--- a/editor/plugins/debugger_editor_plugin.h
+++ b/editor/plugins/debugger_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/editor_debugger_plugin.cpp b/editor/plugins/editor_debugger_plugin.cpp
index 5f3b11ac42..4ce3d7cfd5 100644
--- a/editor/plugins/editor_debugger_plugin.cpp
+++ b/editor/plugins/editor_debugger_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/editor_debugger_plugin.h b/editor/plugins/editor_debugger_plugin.h
index 5995d790c5..b602c36912 100644
--- a/editor/plugins/editor_debugger_plugin.h
+++ b/editor/plugins/editor_debugger_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp
index f7ec0f8c5c..cef505181a 100644
--- a/editor/plugins/editor_preview_plugins.cpp
+++ b/editor/plugins/editor_preview_plugins.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -514,11 +514,7 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size
}
bg_color.a = MAX(bg_color.a, 0.2); // some background
- for (int i = 0; i < thumbnail_size; i++) {
- for (int j = 0; j < thumbnail_size; j++) {
- img->set_pixel(i, j, bg_color);
- }
- }
+ img->fill(bg_color);
const int x0 = thumbnail_size / 8;
const int y0 = thumbnail_size / 8;
diff --git a/editor/plugins/editor_preview_plugins.h b/editor/plugins/editor_preview_plugins.h
index bf52f5771d..dd64918d41 100644
--- a/editor/plugins/editor_preview_plugins.h
+++ b/editor/plugins/editor_preview_plugins.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/font_editor_plugin.cpp b/editor/plugins/font_editor_plugin.cpp
index 52fb5b69ea..73a6781774 100644
--- a/editor/plugins/font_editor_plugin.cpp
+++ b/editor/plugins/font_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/font_editor_plugin.h b/editor/plugins/font_editor_plugin.h
index 3530815872..736137121a 100644
--- a/editor/plugins/font_editor_plugin.h
+++ b/editor/plugins/font_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.cpp b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
index 4b50f484a4..6b93a1872d 100644
--- a/editor/plugins/gpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.h b/editor/plugins/gpu_particles_2d_editor_plugin.h
index bdfc021aa7..55e455e252 100644
--- a/editor/plugins/gpu_particles_2d_editor_plugin.h
+++ b/editor/plugins/gpu_particles_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
index 5ac58795d1..0057566603 100644
--- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.h b/editor/plugins/gpu_particles_3d_editor_plugin.h
index bd10895459..f7e4244ba4 100644
--- a/editor/plugins/gpu_particles_3d_editor_plugin.h
+++ b/editor/plugins/gpu_particles_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
index f6788f80ba..1b4c944876 100644
--- a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h
index ce7ca18293..d74986f22b 100644
--- a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h
+++ b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/gradient_editor_plugin.cpp b/editor/plugins/gradient_editor_plugin.cpp
index 6f2d950190..5e300d3de9 100644
--- a/editor/plugins/gradient_editor_plugin.cpp
+++ b/editor/plugins/gradient_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/gradient_editor_plugin.h b/editor/plugins/gradient_editor_plugin.h
index 95b7b466c9..8239711667 100644
--- a/editor/plugins/gradient_editor_plugin.h
+++ b/editor/plugins/gradient_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/input_event_editor_plugin.cpp b/editor/plugins/input_event_editor_plugin.cpp
index d3d2de92f5..b0ee88479a 100644
--- a/editor/plugins/input_event_editor_plugin.cpp
+++ b/editor/plugins/input_event_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/input_event_editor_plugin.h b/editor/plugins/input_event_editor_plugin.h
index bc8293c9e5..ed26890229 100644
--- a/editor/plugins/input_event_editor_plugin.h
+++ b/editor/plugins/input_event_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/light_occluder_2d_editor_plugin.cpp b/editor/plugins/light_occluder_2d_editor_plugin.cpp
index 3d555d7eba..94ab89e2f6 100644
--- a/editor/plugins/light_occluder_2d_editor_plugin.cpp
+++ b/editor/plugins/light_occluder_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/light_occluder_2d_editor_plugin.h b/editor/plugins/light_occluder_2d_editor_plugin.h
index eb1ce04788..1a0cd3514b 100644
--- a/editor/plugins/light_occluder_2d_editor_plugin.h
+++ b/editor/plugins/light_occluder_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/lightmap_gi_editor_plugin.cpp b/editor/plugins/lightmap_gi_editor_plugin.cpp
index d7b469cb74..2126ca1bc9 100644
--- a/editor/plugins/lightmap_gi_editor_plugin.cpp
+++ b/editor/plugins/lightmap_gi_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -33,13 +33,14 @@
void LightmapGIEditorPlugin::_bake_select_file(const String &p_file) {
if (lightmap) {
LightmapGI::BakeError err;
+ const uint64_t time_started = OS::get_singleton()->get_ticks_msec();
if (get_tree()->get_edited_scene_root() && get_tree()->get_edited_scene_root() == lightmap) {
err = lightmap->bake(lightmap, p_file, bake_func_step);
} else {
err = lightmap->bake(lightmap->get_parent(), p_file, bake_func_step);
}
- bake_func_end();
+ bake_func_end(time_started);
switch (err) {
case LightmapGI::BAKE_ERROR_NO_SAVE_PATH: {
@@ -104,11 +105,18 @@ bool LightmapGIEditorPlugin::bake_func_step(float p_progress, const String &p_de
return tmp_progress->step(p_description, p_progress * 1000, p_refresh);
}
-void LightmapGIEditorPlugin::bake_func_end() {
+void LightmapGIEditorPlugin::bake_func_end(uint64_t p_time_started) {
if (tmp_progress != nullptr) {
memdelete(tmp_progress);
tmp_progress = nullptr;
}
+
+ const int time_taken = (OS::get_singleton()->get_ticks_msec() - p_time_started) * 0.001;
+ print_line(vformat("Done baking lightmaps in %02d:%02d:%02d.", time_taken / 3600, (time_taken % 3600) / 60, time_taken % 60));
+ // Request attention in case the user was doing something else.
+ // Baking lightmaps is likely the editor task that can take the most time,
+ // so only request the attention for baking lightmaps.
+ DisplayServer::get_singleton()->window_request_attention();
}
void LightmapGIEditorPlugin::_bind_methods() {
diff --git a/editor/plugins/lightmap_gi_editor_plugin.h b/editor/plugins/lightmap_gi_editor_plugin.h
index 12d080d6be..5eec972228 100644
--- a/editor/plugins/lightmap_gi_editor_plugin.h
+++ b/editor/plugins/lightmap_gi_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -47,7 +47,7 @@ class LightmapGIEditorPlugin : public EditorPlugin {
EditorFileDialog *file_dialog;
static EditorProgress *tmp_progress;
static bool bake_func_step(float p_progress, const String &p_description, void *, bool p_refresh);
- static void bake_func_end();
+ static void bake_func_end(uint64_t p_time_started);
void _bake_select_file(const String &p_file);
void _bake();
diff --git a/editor/plugins/line_2d_editor_plugin.cpp b/editor/plugins/line_2d_editor_plugin.cpp
index 08c5ef02a4..9d7e22278e 100644
--- a/editor/plugins/line_2d_editor_plugin.cpp
+++ b/editor/plugins/line_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/line_2d_editor_plugin.h b/editor/plugins/line_2d_editor_plugin.h
index 769109583a..4497307747 100644
--- a/editor/plugins/line_2d_editor_plugin.h
+++ b/editor/plugins/line_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/material_editor_plugin.cpp b/editor/plugins/material_editor_plugin.cpp
index bfbe6e26a9..9d45c365a8 100644
--- a/editor/plugins/material_editor_plugin.cpp
+++ b/editor/plugins/material_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -254,6 +254,43 @@ void EditorInspectorPluginMaterial::parse_begin(Object *p_object) {
add_custom_control(editor);
}
+void EditorInspectorPluginMaterial::_undo_redo_inspector_callback(Object *p_undo_redo, Object *p_edited, String p_property, Variant p_new_value) {
+ UndoRedo *undo_redo = Object::cast_to<UndoRedo>(p_undo_redo);
+ if (!undo_redo) {
+ return;
+ }
+
+ // For BaseMaterial3D, if a roughness or metallic textures is being assigned to an empty slot,
+ // set the respective metallic or roughness factor to 1.0 as a convenience feature
+ BaseMaterial3D *base_material = Object::cast_to<StandardMaterial3D>(p_edited);
+ if (base_material) {
+ Texture2D *texture = Object::cast_to<Texture2D>(p_new_value);
+ if (texture) {
+ if (p_property == "roughness_texture") {
+ if (base_material->get_texture(StandardMaterial3D::TEXTURE_ROUGHNESS).is_null() && texture) {
+ undo_redo->add_do_property(p_edited, "roughness", 1.0);
+
+ bool valid = false;
+ Variant value = p_edited->get("roughness", &valid);
+ if (valid) {
+ undo_redo->add_undo_property(p_edited, "roughness", value);
+ }
+ }
+ } else if (p_property == "metallic_texture") {
+ if (base_material->get_texture(StandardMaterial3D::TEXTURE_METALLIC).is_null() && texture) {
+ undo_redo->add_do_property(p_edited, "metallic", 1.0);
+
+ bool valid = false;
+ Variant value = p_edited->get("metallic", &valid);
+ if (valid) {
+ undo_redo->add_undo_property(p_edited, "metallic", value);
+ }
+ }
+ }
+ }
+ }
+}
+
EditorInspectorPluginMaterial::EditorInspectorPluginMaterial() {
env.instantiate();
Ref<Sky> sky = memnew(Sky());
@@ -261,6 +298,8 @@ EditorInspectorPluginMaterial::EditorInspectorPluginMaterial() {
env->set_background(Environment::BG_COLOR);
env->set_ambient_source(Environment::AMBIENT_SOURCE_SKY);
env->set_reflection_source(Environment::REFLECTION_SOURCE_SKY);
+
+ EditorNode::get_singleton()->get_editor_data().add_undo_redo_inspector_hook_callback(callable_mp(this, &EditorInspectorPluginMaterial::_undo_redo_inspector_callback));
}
MaterialEditorPlugin::MaterialEditorPlugin(EditorNode *p_node) {
diff --git a/editor/plugins/material_editor_plugin.h b/editor/plugins/material_editor_plugin.h
index 8262b8149d..53f4513396 100644
--- a/editor/plugins/material_editor_plugin.h
+++ b/editor/plugins/material_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -92,6 +92,8 @@ public:
virtual bool can_handle(Object *p_object) override;
virtual void parse_begin(Object *p_object) override;
+ void _undo_redo_inspector_callback(Object *p_undo_redo, Object *p_edited, String p_property, Variant p_new_value);
+
EditorInspectorPluginMaterial();
};
diff --git a/editor/plugins/mesh_editor_plugin.cpp b/editor/plugins/mesh_editor_plugin.cpp
index 4b18ac6e9f..daf68f247d 100644
--- a/editor/plugins/mesh_editor_plugin.cpp
+++ b/editor/plugins/mesh_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/mesh_editor_plugin.h b/editor/plugins/mesh_editor_plugin.h
index 1e88b70202..613680e870 100644
--- a/editor/plugins/mesh_editor_plugin.h
+++ b/editor/plugins/mesh_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
index 2ce13b717a..75e9cc23a1 100644
--- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp
+++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.h b/editor/plugins/mesh_instance_3d_editor_plugin.h
index 98b667c978..1df72d107c 100644
--- a/editor/plugins/mesh_instance_3d_editor_plugin.h
+++ b/editor/plugins/mesh_instance_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp
index fd62f632dc..d82d0c6ffc 100644
--- a/editor/plugins/mesh_library_editor_plugin.cpp
+++ b/editor/plugins/mesh_library_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/mesh_library_editor_plugin.h b/editor/plugins/mesh_library_editor_plugin.h
index 9e225ffb9b..7144f87ba6 100644
--- a/editor/plugins/mesh_library_editor_plugin.h
+++ b/editor/plugins/mesh_library_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/multimesh_editor_plugin.cpp b/editor/plugins/multimesh_editor_plugin.cpp
index 517aca596a..4ec65ea257 100644
--- a/editor/plugins/multimesh_editor_plugin.cpp
+++ b/editor/plugins/multimesh_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/multimesh_editor_plugin.h b/editor/plugins/multimesh_editor_plugin.h
index 2cdd7cf504..ae18edd90a 100644
--- a/editor/plugins/multimesh_editor_plugin.h
+++ b/editor/plugins/multimesh_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/navigation_polygon_editor_plugin.cpp b/editor/plugins/navigation_polygon_editor_plugin.cpp
index 9971d3111d..e9e2a843cd 100644
--- a/editor/plugins/navigation_polygon_editor_plugin.cpp
+++ b/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/navigation_polygon_editor_plugin.h b/editor/plugins/navigation_polygon_editor_plugin.h
index 0f5928d416..446083902c 100644
--- a/editor/plugins/navigation_polygon_editor_plugin.h
+++ b/editor/plugins/navigation_polygon_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp
index 32355735cc..474e84cae8 100644
--- a/editor/plugins/node_3d_editor_gizmos.cpp
+++ b/editor/plugins/node_3d_editor_gizmos.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/node_3d_editor_gizmos.h b/editor/plugins/node_3d_editor_gizmos.h
index cf9a464b69..a8383aefed 100644
--- a/editor/plugins/node_3d_editor_gizmos.h
+++ b/editor/plugins/node_3d_editor_gizmos.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index f49b749046..957d1483bc 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -954,7 +954,7 @@ bool Node3DEditorViewport::_transform_gizmo_select(const Vector2 &p_screenpos, b
real_t col_d = 1e20;
for (int i = 0; i < 3; i++) {
- const Vector3 grabber_pos = gt.origin + gt.basis.get_axis(i) * gizmo_scale * (GIZMO_ARROW_OFFSET + (GIZMO_ARROW_SIZE * 0.5));
+ const Vector3 grabber_pos = gt.origin + gt.basis.get_axis(i).normalized() * gizmo_scale * (GIZMO_ARROW_OFFSET + (GIZMO_ARROW_SIZE * 0.5));
const real_t grabber_radius = gizmo_scale * GIZMO_ARROW_SIZE;
Vector3 r;
@@ -1058,7 +1058,7 @@ bool Node3DEditorViewport::_transform_gizmo_select(const Vector2 &p_screenpos, b
float col_d = 1e20;
for (int i = 0; i < 3; i++) {
- const Vector3 grabber_pos = gt.origin + gt.basis.get_axis(i) * gizmo_scale * GIZMO_SCALE_OFFSET;
+ const Vector3 grabber_pos = gt.origin + gt.basis.get_axis(i).normalized() * gizmo_scale * GIZMO_SCALE_OFFSET;
const real_t grabber_radius = gizmo_scale * GIZMO_ARROW_SIZE;
Vector3 r;
@@ -1138,68 +1138,62 @@ void Node3DEditorViewport::_transform_gizmo_apply(Node3D *p_node, const Transfor
}
}
-Transform3D Node3DEditorViewport::_compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local) {
+Transform3D Node3DEditorViewport::_compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local, bool p_orthogonal) {
switch (p_mode) {
case TRANSFORM_SCALE: {
+ if (_edit.snap || spatial_editor->is_snap_enabled()) {
+ p_motion.snap(Vector3(p_extra, p_extra, p_extra));
+ }
+ Transform3D s;
if (p_local) {
- Basis g = p_original.basis.orthonormalized();
- Vector3 local_motion = g.inverse().xform(p_motion);
-
- if (_edit.snap || spatial_editor->is_snap_enabled()) {
- local_motion.snap(Vector3(p_extra, p_extra, p_extra));
- }
-
- Transform3D local_t;
- local_t.basis = p_original_local.basis.scaled_local(local_motion + Vector3(1, 1, 1));
- local_t.origin = p_original_local.origin;
- return local_t;
+ s.basis = p_original_local.basis.scaled_local(p_motion + Vector3(1, 1, 1));
+ s.origin = p_original_local.origin;
} else {
+ s.basis.scale(p_motion + Vector3(1, 1, 1));
Transform3D base = Transform3D(Basis(), _edit.center);
- if (_edit.snap || spatial_editor->is_snap_enabled()) {
- p_motion.snap(Vector3(p_extra, p_extra, p_extra));
+ s = base * (s * (base.inverse() * p_original));
+
+ // Recalculate orthogonalized scale without moving origin.
+ if (p_orthogonal) {
+ s.basis = p_original_local.basis.scaled_orthogonal(p_motion + Vector3(1, 1, 1));
+ // The scaled_orthogonal() does not require orthogonal Basis,
+ // but it may make a bit skew by precision problems.
+ s.basis.orthogonalize();
}
-
- Transform3D global_t;
- global_t.basis.scale(p_motion + Vector3(1, 1, 1));
- return base * (global_t * (base.inverse() * p_original));
}
+
+ return s;
}
case TRANSFORM_TRANSLATE: {
- if (p_local) {
- if (_edit.snap || spatial_editor->is_snap_enabled()) {
- Basis g = p_original.basis.orthonormalized();
- Vector3 local_motion = g.inverse().xform(p_motion);
- local_motion.snap(Vector3(p_extra, p_extra, p_extra));
-
- p_motion = g.xform(local_motion);
- }
+ if (_edit.snap || spatial_editor->is_snap_enabled()) {
+ p_motion.snap(Vector3(p_extra, p_extra, p_extra));
+ }
- } else {
- if (_edit.snap || spatial_editor->is_snap_enabled()) {
- p_motion.snap(Vector3(p_extra, p_extra, p_extra));
- }
+ if (p_local) {
+ p_motion = p_original.basis.xform(p_motion);
}
// Apply translation
Transform3D t = p_original;
t.origin += p_motion;
+
return t;
}
case TRANSFORM_ROTATE: {
+ Transform3D r;
+
if (p_local) {
- Transform3D r;
Vector3 axis = p_original_local.basis.xform(p_motion);
r.basis = Basis(axis.normalized(), p_extra) * p_original_local.basis;
r.origin = p_original_local.origin;
- return r;
} else {
- Transform3D r;
Basis local = p_original.basis * p_original_local.basis.inverse();
Vector3 axis = local.xform_inv(p_motion);
r.basis = local * Basis(axis.normalized(), p_extra) * p_original_local.basis;
r.origin = Basis(p_motion, p_extra).xform(p_original.origin - _edit.center) + _edit.center;
- return r;
}
+
+ return r;
}
default: {
ERR_FAIL_V_MSG(Transform3D(), "Invalid mode in '_compute_transform'");
@@ -1480,6 +1474,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
_edit.original_mouse_pos = b->get_position();
_edit.snap = spatial_editor->is_snap_enabled();
_edit.mode = TRANSFORM_NONE;
+ _edit.original = spatial_editor->get_gizmo_transform(); // To prevent to break when flipping with scale.
bool can_select_gizmos = spatial_editor->get_single_selected_node();
@@ -1783,30 +1778,30 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
plane = Plane(_get_camera_normal(), _edit.center);
break;
case TRANSFORM_X_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_Y_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(1);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_Z_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_YZ:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2) + spatial_editor->get_gizmo_transform().basis.get_axis(1);
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0), _edit.center);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized() + spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized();
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized(), _edit.center);
plane_mv = true;
break;
case TRANSFORM_XZ:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2) + spatial_editor->get_gizmo_transform().basis.get_axis(0);
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1), _edit.center);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized() + spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized();
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized(), _edit.center);
plane_mv = true;
break;
case TRANSFORM_XY:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0) + spatial_editor->get_gizmo_transform().basis.get_axis(1);
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2), _edit.center);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized() + spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized();
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized(), _edit.center);
plane_mv = true;
break;
}
@@ -1857,6 +1852,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
// This might not be necessary anymore after issue #288 is solved (in 4.0?).
set_message(TTR("Scaling: ") + "(" + String::num(motion_snapped.x, snap_step_decimals) + ", " +
String::num(motion_snapped.y, snap_step_decimals) + ", " + String::num(motion_snapped.z, snap_step_decimals) + ")");
+ motion = _edit.original.basis.inverse().xform(motion);
List<Node *> &selection = editor_selection->get_selected_node_list();
for (Node *E : selection) {
@@ -1877,14 +1873,14 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
if (se->gizmo.is_valid()) {
for (KeyValue<int, Transform3D> &GE : se->subgizmos) {
Transform3D xform = GE.value;
- Transform3D new_xform = _compute_transform(TRANSFORM_SCALE, se->original * xform, xform, motion, snap, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_SCALE, se->original * xform, xform, motion, snap, local_coords, true); // Force orthogonal with subgizmo.
if (!local_coords) {
new_xform = se->original.affine_inverse() * new_xform;
}
se->gizmo->set_subgizmo_transform(GE.key, new_xform);
}
} else {
- Transform3D new_xform = _compute_transform(TRANSFORM_SCALE, se->original, se->original_local, motion, snap, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_SCALE, se->original, se->original_local, motion, snap, local_coords, sp->get_rotation_edit_mode() != Node3D::ROTATION_EDIT_MODE_BASIS);
_transform_gizmo_apply(se->sp, new_xform, local_coords);
}
}
@@ -1904,27 +1900,27 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
plane = Plane(_get_camera_normal(), _edit.center);
break;
case TRANSFORM_X_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_Y_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(1);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_Z_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_YZ:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized(), _edit.center);
plane_mv = true;
break;
case TRANSFORM_XZ:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized(), _edit.center);
plane_mv = true;
break;
case TRANSFORM_XY:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized(), _edit.center);
plane_mv = true;
break;
}
@@ -1956,6 +1952,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
motion_snapped.snap(Vector3(snap, snap, snap));
set_message(TTR("Translating: ") + "(" + String::num(motion_snapped.x, snap_step_decimals) + ", " +
String::num(motion_snapped.y, snap_step_decimals) + ", " + String::num(motion_snapped.z, snap_step_decimals) + ")");
+ motion = spatial_editor->get_gizmo_transform().basis.inverse().xform(motion);
List<Node *> &selection = editor_selection->get_selected_node_list();
for (Node *E : selection) {
@@ -1976,12 +1973,12 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
if (se->gizmo.is_valid()) {
for (KeyValue<int, Transform3D> &GE : se->subgizmos) {
Transform3D xform = GE.value;
- Transform3D new_xform = _compute_transform(TRANSFORM_TRANSLATE, se->original * xform, xform, motion, snap, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_TRANSLATE, se->original * xform, xform, motion, snap, local_coords, true); // Force orthogonal with subgizmo.
new_xform = se->original.affine_inverse() * new_xform;
se->gizmo->set_subgizmo_transform(GE.key, new_xform);
}
} else {
- Transform3D new_xform = _compute_transform(TRANSFORM_TRANSLATE, se->original, se->original_local, motion, snap, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_TRANSLATE, se->original, se->original_local, motion, snap, local_coords, sp->get_rotation_edit_mode() != Node3D::ROTATION_EDIT_MODE_BASIS);
_transform_gizmo_apply(se->sp, new_xform, false);
}
}
@@ -2000,15 +1997,15 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
plane = Plane(_get_camera_normal(), _edit.center);
break;
case TRANSFORM_X_AXIS:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized(), _edit.center);
axis = Vector3(1, 0, 0);
break;
case TRANSFORM_Y_AXIS:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized(), _edit.center);
axis = Vector3(0, 1, 0);
break;
case TRANSFORM_Z_AXIS:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized(), _edit.center);
axis = Vector3(0, 0, 1);
break;
case TRANSFORM_YZ:
@@ -2063,14 +2060,14 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
for (KeyValue<int, Transform3D> &GE : se->subgizmos) {
Transform3D xform = GE.value;
- Transform3D new_xform = _compute_transform(TRANSFORM_ROTATE, se->original * xform, xform, compute_axis, angle, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_ROTATE, se->original * xform, xform, compute_axis, angle, local_coords, true); // Force orthogonal with subgizmo.
if (!local_coords) {
new_xform = se->original.affine_inverse() * new_xform;
}
se->gizmo->set_subgizmo_transform(GE.key, new_xform);
}
} else {
- Transform3D new_xform = _compute_transform(TRANSFORM_ROTATE, se->original, se->original_local, compute_axis, angle, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_ROTATE, se->original, se->original_local, compute_axis, angle, local_coords, sp->get_rotation_edit_mode() != Node3D::ROTATION_EDIT_MODE_BASIS);
_transform_gizmo_apply(se->sp, new_xform, local_coords);
}
}
@@ -2439,7 +2436,8 @@ void Node3DEditorViewport::_nav_look(Ref<InputEventWithModifiers> p_event, const
_menu_option(VIEW_PERSPECTIVE);
}
- const real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity");
+ // Scale mouse sensitivity with camera FOV scale when zoomed in to make it easier to point at things.
+ const real_t degrees_per_pixel = real_t(EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity")) * MIN(1.0, cursor.fov_scale);
const real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel);
const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis");
@@ -2687,8 +2685,8 @@ void Node3DEditorViewport::_project_settings_changed() {
const bool use_occlusion_culling = GLOBAL_GET("rendering/occlusion_culling/use_occlusion_culling");
viewport->set_use_occlusion_culling(use_occlusion_culling);
- const float lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
- viewport->set_lod_threshold(lod_threshold);
+ const float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
+ viewport->set_mesh_lod_threshold(mesh_lod_threshold);
}
void Node3DEditorViewport::_notification(int p_what) {
@@ -3390,6 +3388,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
case VIEW_DISPLAY_DEBUG_VOXEL_GI_EMISSION:
case VIEW_DISPLAY_DEBUG_SCENE_LUMINANCE:
case VIEW_DISPLAY_DEBUG_SSAO:
+ case VIEW_DISPLAY_DEBUG_SSIL:
case VIEW_DISPLAY_DEBUG_PSSM_SPLITS:
case VIEW_DISPLAY_DEBUG_DECAL_ATLAS:
case VIEW_DISPLAY_DEBUG_SDFGI:
@@ -3416,6 +3415,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
VIEW_DISPLAY_DEBUG_VOXEL_GI_EMISSION,
VIEW_DISPLAY_DEBUG_SCENE_LUMINANCE,
VIEW_DISPLAY_DEBUG_SSAO,
+ VIEW_DISPLAY_DEBUG_SSIL,
VIEW_DISPLAY_DEBUG_GI_BUFFER,
VIEW_DISPLAY_DEBUG_DISABLE_LOD,
VIEW_DISPLAY_DEBUG_PSSM_SPLITS,
@@ -3444,6 +3444,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
Viewport::DEBUG_DRAW_VOXEL_GI_EMISSION,
Viewport::DEBUG_DRAW_SCENE_LUMINANCE,
Viewport::DEBUG_DRAW_SSAO,
+ Viewport::DEBUG_DRAW_SSIL,
Viewport::DEBUG_DRAW_GI_BUFFER,
Viewport::DEBUG_DRAW_DISABLE_LOD,
Viewport::DEBUG_DRAW_PSSM_SPLITS,
@@ -3672,8 +3673,6 @@ void Node3DEditorViewport::update_transform_gizmo_view() {
subviewport_container->get_stretch_shrink();
Vector3 scale = Vector3(1, 1, 1) * gizmo_scale;
- xform.basis.scale(scale);
-
// if the determinant is zero, we should disable the gizmo from being rendered
// this prevents supplying bad values to the renderer and then having to filter it out again
if (xform.basis.determinant() == 0) {
@@ -3690,18 +3689,26 @@ void Node3DEditorViewport::update_transform_gizmo_view() {
}
for (int i = 0; i < 3; i++) {
- RenderingServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], xform);
+ Transform3D axis_angle = Transform3D();
+ if (xform.basis.get_axis(i).normalized().dot(xform.basis.get_axis((i + 1) % 3).normalized()) < 1.0) {
+ axis_angle = axis_angle.looking_at(xform.basis.get_axis(i).normalized(), xform.basis.get_axis((i + 1) % 3).normalized());
+ }
+ axis_angle.basis.scale(scale);
+ axis_angle.origin = xform.origin;
+ RenderingServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE));
- RenderingServer::get_singleton()->instance_set_transform(move_plane_gizmo_instance[i], xform);
+ RenderingServer::get_singleton()->instance_set_transform(move_plane_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE));
- RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], xform);
+ RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE));
- RenderingServer::get_singleton()->instance_set_transform(scale_gizmo_instance[i], xform);
+ RenderingServer::get_singleton()->instance_set_transform(scale_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE));
- RenderingServer::get_singleton()->instance_set_transform(scale_plane_gizmo_instance[i], xform);
+ RenderingServer::get_singleton()->instance_set_transform(scale_plane_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE));
}
// Rotation white outline
+ xform.orthonormalize();
+ xform.basis.scale(scale);
RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[3], xform);
RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[3], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE));
}
@@ -3984,6 +3991,37 @@ AABB Node3DEditorViewport::_calculate_spatial_bounds(const Node3D *p_parent, boo
return bounds;
}
+Node *Node3DEditorViewport::_sanitize_preview_node(Node *p_node) const {
+ Node3D *node_3d = Object::cast_to<Node3D>(p_node);
+ if (node_3d == nullptr) {
+ Node3D *replacement_node = memnew(Node3D);
+ replacement_node->set_name(p_node->get_name());
+ p_node->replace_by(replacement_node);
+ memdelete(p_node);
+ p_node = replacement_node;
+ } else {
+ VisualInstance3D *visual_instance = Object::cast_to<VisualInstance3D>(node_3d);
+ if (visual_instance == nullptr) {
+ Node3D *replacement_node = memnew(Node3D);
+ replacement_node->set_name(node_3d->get_name());
+ replacement_node->set_visible(node_3d->is_visible());
+ replacement_node->set_transform(node_3d->get_transform());
+ replacement_node->set_rotation_edit_mode(node_3d->get_rotation_edit_mode());
+ replacement_node->set_rotation_order(node_3d->get_rotation_order());
+ replacement_node->set_as_top_level(node_3d->is_set_as_top_level());
+ p_node->replace_by(replacement_node);
+ memdelete(p_node);
+ p_node = replacement_node;
+ }
+ }
+
+ for (int i = 0; i < p_node->get_child_count(); i++) {
+ _sanitize_preview_node(p_node->get_child(i));
+ }
+
+ return p_node;
+}
+
void Node3DEditorViewport::_create_preview(const Vector<String> &files) const {
for (int i = 0; i < files.size(); i++) {
String path = files[i];
@@ -4000,6 +4038,7 @@ void Node3DEditorViewport::_create_preview(const Vector<String> &files) const {
if (scene.is_valid()) {
Node *instance = scene->instantiate();
if (instance) {
+ instance = _sanitize_preview_node(instance);
preview_node->add_child(instance);
}
}
@@ -4091,7 +4130,7 @@ bool Node3DEditorViewport::_create_instance(Node *parent, String &path, const Po
instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(path));
}
- editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene);
+ editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene, true);
editor_data->get_undo_redo().add_do_method(instantiated_scene, "set_owner", editor->get_edited_scene());
editor_data->get_undo_redo().add_do_reference(instantiated_scene);
editor_data->get_undo_redo().add_undo_method(parent, "remove_child", instantiated_scene);
@@ -4351,6 +4390,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, Edito
display_submenu->add_radio_check_item(TTR("Scene Luminance"), VIEW_DISPLAY_DEBUG_SCENE_LUMINANCE);
display_submenu->add_separator();
display_submenu->add_radio_check_item(TTR("SSAO"), VIEW_DISPLAY_DEBUG_SSAO);
+ display_submenu->add_radio_check_item(TTR("SSIL"), VIEW_DISPLAY_DEBUG_SSIL);
display_submenu->add_separator();
display_submenu->add_radio_check_item(TTR("GI Buffer"), VIEW_DISPLAY_DEBUG_GI_BUFFER);
display_submenu->add_separator();
@@ -4878,7 +4918,6 @@ void Node3DEditor::update_transform_gizmo() {
gizmo_center += xf.origin;
if (count == 0 && local_gizmo_coords) {
gizmo_basis = xf.basis;
- gizmo_basis.orthonormalize();
}
count++;
}
@@ -4903,7 +4942,6 @@ void Node3DEditor::update_transform_gizmo() {
gizmo_center += xf.origin;
if (count == 0 && local_gizmo_coords) {
gizmo_basis = xf.basis;
- gizmo_basis.orthonormalize();
}
count++;
}
@@ -5778,6 +5816,12 @@ void fragment() {
{
//move gizmo
+ // Inverted zxy.
+ Vector3 ivec = Vector3(0, 0, -1);
+ Vector3 nivec = Vector3(-1, -1, 0);
+ Vector3 ivec2 = Vector3(-1, 0, 0);
+ Vector3 ivec3 = Vector3(0, -1, 0);
+
for (int i = 0; i < 3; i++) {
Color col;
switch (i) {
@@ -5815,16 +5859,6 @@ void fragment() {
mat_hl->set_albedo(albedo);
gizmo_color_hl[i] = mat_hl;
- Vector3 ivec;
- ivec[i] = 1;
- Vector3 nivec;
- nivec[(i + 1) % 3] = 1;
- nivec[(i + 2) % 3] = 1;
- Vector3 ivec2;
- ivec2[(i + 1) % 3] = 1;
- Vector3 ivec3;
- ivec3[(i + 2) % 3] = 1;
-
//translate
{
Ref<SurfaceTool> surftool = memnew(SurfaceTool);
diff --git a/editor/plugins/node_3d_editor_plugin.h b/editor/plugins/node_3d_editor_plugin.h
index 8d647808ba..8d42e88b53 100644
--- a/editor/plugins/node_3d_editor_plugin.h
+++ b/editor/plugins/node_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -125,6 +125,7 @@ class Node3DEditorViewport : public Control {
VIEW_DISPLAY_DEBUG_VOXEL_GI_EMISSION,
VIEW_DISPLAY_DEBUG_SCENE_LUMINANCE,
VIEW_DISPLAY_DEBUG_SSAO,
+ VIEW_DISPLAY_DEBUG_SSIL,
VIEW_DISPLAY_DEBUG_PSSM_SPLITS,
VIEW_DISPLAY_DEBUG_DECAL_ATLAS,
VIEW_DISPLAY_DEBUG_SDFGI,
@@ -384,6 +385,9 @@ private:
Vector3 _get_instance_position(const Point2 &p_pos) const;
static AABB _calculate_spatial_bounds(const Node3D *p_parent, bool p_exclude_top_level_transform = true);
+
+ Node *_sanitize_preview_node(Node *p_node) const;
+
void _create_preview(const Vector<String> &files) const;
void _remove_preview();
bool _cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node);
@@ -395,7 +399,7 @@ private:
void _project_settings_changed();
- Transform3D _compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local);
+ Transform3D _compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local, bool p_orthogonal);
protected:
void _notification(int p_what);
diff --git a/editor/plugins/occluder_instance_3d_editor_plugin.cpp b/editor/plugins/occluder_instance_3d_editor_plugin.cpp
index 1e85b19a84..2dd760275e 100644
--- a/editor/plugins/occluder_instance_3d_editor_plugin.cpp
+++ b/editor/plugins/occluder_instance_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/occluder_instance_3d_editor_plugin.h b/editor/plugins/occluder_instance_3d_editor_plugin.h
index 161b17811c..a9aa0b74e3 100644
--- a/editor/plugins/occluder_instance_3d_editor_plugin.h
+++ b/editor/plugins/occluder_instance_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/ot_features_plugin.cpp b/editor/plugins/ot_features_plugin.cpp
index 7f3ebc01d5..d2daa4fa8d 100644
--- a/editor/plugins/ot_features_plugin.cpp
+++ b/editor/plugins/ot_features_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/ot_features_plugin.h b/editor/plugins/ot_features_plugin.h
index add491ed48..073fe53a52 100644
--- a/editor/plugins/ot_features_plugin.h
+++ b/editor/plugins/ot_features_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/packed_scene_translation_parser_plugin.cpp b/editor/plugins/packed_scene_translation_parser_plugin.cpp
index 53c5b8dd70..b492c27f41 100644
--- a/editor/plugins/packed_scene_translation_parser_plugin.cpp
+++ b/editor/plugins/packed_scene_translation_parser_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/packed_scene_translation_parser_plugin.h b/editor/plugins/packed_scene_translation_parser_plugin.h
index af0291b69c..fc19496eb6 100644
--- a/editor/plugins/packed_scene_translation_parser_plugin.h
+++ b/editor/plugins/packed_scene_translation_parser_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/path_2d_editor_plugin.cpp b/editor/plugins/path_2d_editor_plugin.cpp
index 79f8ce95cd..c50673559c 100644
--- a/editor/plugins/path_2d_editor_plugin.cpp
+++ b/editor/plugins/path_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/path_2d_editor_plugin.h b/editor/plugins/path_2d_editor_plugin.h
index 867e0ce74f..210a5a140d 100644
--- a/editor/plugins/path_2d_editor_plugin.h
+++ b/editor/plugins/path_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/path_3d_editor_plugin.cpp b/editor/plugins/path_3d_editor_plugin.cpp
index e83f6481f9..c31b893498 100644
--- a/editor/plugins/path_3d_editor_plugin.cpp
+++ b/editor/plugins/path_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/path_3d_editor_plugin.h b/editor/plugins/path_3d_editor_plugin.h
index 974234ba8f..a7da2c07e5 100644
--- a/editor/plugins/path_3d_editor_plugin.h
+++ b/editor/plugins/path_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/physical_bone_3d_editor_plugin.cpp b/editor/plugins/physical_bone_3d_editor_plugin.cpp
index 71955cf62c..9d69bbaa0b 100644
--- a/editor/plugins/physical_bone_3d_editor_plugin.cpp
+++ b/editor/plugins/physical_bone_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/physical_bone_3d_editor_plugin.h b/editor/plugins/physical_bone_3d_editor_plugin.h
index 248aad9298..d30222d7e6 100644
--- a/editor/plugins/physical_bone_3d_editor_plugin.h
+++ b/editor/plugins/physical_bone_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index affcab9e7d..e272b96778 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/polygon_2d_editor_plugin.h b/editor/plugins/polygon_2d_editor_plugin.h
index cbe7ecf360..a04179dcad 100644
--- a/editor/plugins/polygon_2d_editor_plugin.h
+++ b/editor/plugins/polygon_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp
index 30b7a26aab..d5287bc2fb 100644
--- a/editor/plugins/resource_preloader_editor_plugin.cpp
+++ b/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/resource_preloader_editor_plugin.h b/editor/plugins/resource_preloader_editor_plugin.h
index 943765d4e0..838d72df41 100644
--- a/editor/plugins/resource_preloader_editor_plugin.h
+++ b/editor/plugins/resource_preloader_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/root_motion_editor_plugin.cpp b/editor/plugins/root_motion_editor_plugin.cpp
index d1830bf5af..34b39d2a17 100644
--- a/editor/plugins/root_motion_editor_plugin.cpp
+++ b/editor/plugins/root_motion_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/root_motion_editor_plugin.h b/editor/plugins/root_motion_editor_plugin.h
index c05975b6c3..c2866f269b 100644
--- a/editor/plugins/root_motion_editor_plugin.h
+++ b/editor/plugins/root_motion_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index caaac2c7d3..03ed0e0ef2 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index 0adeca031e..ca409e15ca 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index d5af7c5b38..97a882c383 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -238,10 +238,6 @@ void ScriptTextEditor::_show_warnings_panel(bool p_show) {
void ScriptTextEditor::_warning_clicked(Variant p_line) {
if (p_line.get_type() == Variant::INT) {
goto_line_centered(p_line.operator int64_t());
- } else if (p_line.get_type() == Variant::DICTIONARY) {
- Dictionary meta = p_line.operator Dictionary();
- code_editor->get_text_editor()->insert_line_at(meta["line"].operator int64_t() - 1, "# warning-ignore:" + meta["code"].operator String());
- _validate_script();
}
}
@@ -468,20 +464,8 @@ void ScriptTextEditor::_validate_script() {
}
// Add script warnings.
- warnings_panel->push_table(3);
+ warnings_panel->push_table(2);
for (const ScriptLanguage::Warning &w : warnings) {
- Dictionary ignore_meta;
- ignore_meta["line"] = w.start_line;
- ignore_meta["code"] = w.string_code.to_lower();
- warnings_panel->push_cell();
- warnings_panel->push_meta(ignore_meta);
- warnings_panel->push_color(
- warnings_panel->get_theme_color(SNAME("accent_color"), SNAME("Editor")).lerp(warnings_panel->get_theme_color(SNAME("mono_color"), SNAME("Editor")), 0.5));
- warnings_panel->add_text(TTR("[Ignore]"));
- warnings_panel->pop(); // Color.
- warnings_panel->pop(); // Meta ignore.
- warnings_panel->pop(); // Cell.
-
warnings_panel->push_cell();
warnings_panel->push_meta(w.start_line - 1);
warnings_panel->push_color(warnings_panel->get_theme_color(SNAME("warning_color"), SNAME("Editor")));
diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h
index afe9a7453d..6e67444489 100644
--- a/editor/plugins/script_text_editor.h
+++ b/editor/plugins/script_text_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp
index d5ee52dfab..e8bbeb0834 100644
--- a/editor/plugins/shader_editor_plugin.cpp
+++ b/editor/plugins/shader_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -293,15 +293,20 @@ void ShaderTextEditor::_update_warning_panel() {
}
warning_count++;
+ int line = w.get_line();
// First cell.
warnings_panel->push_cell();
- warnings_panel->push_meta(w.get_line() - 1);
warnings_panel->push_color(warnings_panel->get_theme_color(SNAME("warning_color"), SNAME("Editor")));
- warnings_panel->add_text(TTR("Line") + " " + itos(w.get_line()));
- warnings_panel->add_text(" (" + w.get_name() + "):");
+ if (line != -1) {
+ warnings_panel->push_meta(line - 1);
+ warnings_panel->add_text(TTR("Line") + " " + itos(line));
+ warnings_panel->add_text(" (" + w.get_name() + "):");
+ warnings_panel->pop(); // Meta goto.
+ } else {
+ warnings_panel->add_text(w.get_name() + ":");
+ }
warnings_panel->pop(); // Color.
- warnings_panel->pop(); // Meta goto.
warnings_panel->pop(); // Cell.
// Second cell.
diff --git a/editor/plugins/shader_editor_plugin.h b/editor/plugins/shader_editor_plugin.h
index 77579754d3..cc90d381a5 100644
--- a/editor/plugins/shader_editor_plugin.h
+++ b/editor/plugins/shader_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/shader_file_editor_plugin.cpp b/editor/plugins/shader_file_editor_plugin.cpp
index 517de1901f..8250164885 100644
--- a/editor/plugins/shader_file_editor_plugin.cpp
+++ b/editor/plugins/shader_file_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/shader_file_editor_plugin.h b/editor/plugins/shader_file_editor_plugin.h
index 7d6e503b6c..feec0c206e 100644
--- a/editor/plugins/shader_file_editor_plugin.h
+++ b/editor/plugins/shader_file_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/skeleton_2d_editor_plugin.cpp b/editor/plugins/skeleton_2d_editor_plugin.cpp
index 510e264c48..b6d465ea81 100644
--- a/editor/plugins/skeleton_2d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/skeleton_2d_editor_plugin.h b/editor/plugins/skeleton_2d_editor_plugin.h
index 066888f685..2fa7f02622 100644
--- a/editor/plugins/skeleton_2d_editor_plugin.h
+++ b/editor/plugins/skeleton_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp
index bb5ef0f6eb..e1b27cb045 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -1110,7 +1110,7 @@ void fragment() {
)");
selected_mat->set_shader(selected_sh);
- // Regist properties in editor settings.
+ // Register properties in editor settings.
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/skeleton", Color(1, 0.8, 0.4));
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/selected_bone", Color(0.8, 0.3, 0.0));
EDITOR_DEF("editors/3d_gizmos/gizmo_settings/bone_axis_length", (float)0.1);
diff --git a/editor/plugins/skeleton_3d_editor_plugin.h b/editor/plugins/skeleton_3d_editor_plugin.h
index 1dd2d2281d..d0d81d6498 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.h
+++ b/editor/plugins/skeleton_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/skeleton_ik_3d_editor_plugin.cpp b/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
index 85632cf481..ca8786a385 100644
--- a/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/skeleton_ik_3d_editor_plugin.h b/editor/plugins/skeleton_ik_3d_editor_plugin.h
index b0d2138115..edc3f6dda4 100644
--- a/editor/plugins/skeleton_ik_3d_editor_plugin.h
+++ b/editor/plugins/skeleton_ik_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/sprite_2d_editor_plugin.cpp b/editor/plugins/sprite_2d_editor_plugin.cpp
index 48b10d5a8b..1eac651ed6 100644
--- a/editor/plugins/sprite_2d_editor_plugin.cpp
+++ b/editor/plugins/sprite_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/sprite_2d_editor_plugin.h b/editor/plugins/sprite_2d_editor_plugin.h
index d4a1ef4312..c93ad1610f 100644
--- a/editor/plugins/sprite_2d_editor_plugin.h
+++ b/editor/plugins/sprite_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp
index 316ef7b195..2da4f80751 100644
--- a/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -1232,7 +1232,7 @@ SpriteFramesEditor::SpriteFramesEditor() {
split_sheet_vb->add_child(split_sheet_panel);
split_sheet_preview = memnew(TextureRect);
- split_sheet_preview->set_expand(true);
+ split_sheet_preview->set_ignore_texture_size(true);
split_sheet_preview->set_mouse_filter(MOUSE_FILTER_PASS);
split_sheet_preview->connect("draw", callable_mp(this, &SpriteFramesEditor::_sheet_preview_draw));
split_sheet_preview->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_sheet_preview_input));
diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h
index 9732384000..8767e05a94 100644
--- a/editor/plugins/sprite_frames_editor_plugin.h
+++ b/editor/plugins/sprite_frames_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/style_box_editor_plugin.cpp b/editor/plugins/style_box_editor_plugin.cpp
index 1c7f319280..5d38352b22 100644
--- a/editor/plugins/style_box_editor_plugin.cpp
+++ b/editor/plugins/style_box_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/style_box_editor_plugin.h b/editor/plugins/style_box_editor_plugin.h
index d82e5ab05e..898628fd7f 100644
--- a/editor/plugins/style_box_editor_plugin.h
+++ b/editor/plugins/style_box_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/sub_viewport_preview_editor_plugin.cpp b/editor/plugins/sub_viewport_preview_editor_plugin.cpp
index 75c47bda2e..4498a1d64d 100644
--- a/editor/plugins/sub_viewport_preview_editor_plugin.cpp
+++ b/editor/plugins/sub_viewport_preview_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/sub_viewport_preview_editor_plugin.h b/editor/plugins/sub_viewport_preview_editor_plugin.h
index 03b8b678d1..7016910ebd 100644
--- a/editor/plugins/sub_viewport_preview_editor_plugin.h
+++ b/editor/plugins/sub_viewport_preview_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/text_control_editor_plugin.cpp b/editor/plugins/text_control_editor_plugin.cpp
index c878c83430..a51b5d3e03 100644
--- a/editor/plugins/text_control_editor_plugin.cpp
+++ b/editor/plugins/text_control_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -53,6 +53,10 @@ void TextControlEditor::_notification(int p_notification) {
}
}
+void TextControlEditor::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("_update_control"), &TextControlEditor::_update_control);
+}
+
void TextControlEditor::_find_resources(EditorFileSystemDirectory *p_dir) {
for (int i = 0; i < p_dir->get_subdir_count(); i++) {
_find_resources(p_dir->get_subdir(i));
@@ -179,8 +183,13 @@ void TextControlEditor::_update_control() {
}
// Get other theme overrides.
+ font_size_list->set_block_signals(true);
font_size_list->set_value(edited_control->get_theme_font_size(edited_font_size));
+ font_size_list->set_block_signals(false);
+
+ outline_size_list->set_block_signals(true);
outline_size_list->set_value(edited_control->get_theme_constant("outline_size"));
+ outline_size_list->set_block_signals(false);
font_color_picker->set_pick_color(edited_control->get_theme_color(edited_color));
outline_color_picker->set_pick_color(edited_control->get_theme_color("font_outline_color"));
@@ -188,7 +197,6 @@ void TextControlEditor::_update_control() {
}
void TextControlEditor::_font_selected(int p_id) {
- _update_styles_menu();
_set_font();
}
@@ -197,70 +205,177 @@ void TextControlEditor::_font_style_selected(int p_id) {
}
void TextControlEditor::_set_font() {
- if (edited_control) {
- if (font_list->get_selected_id() == FONT_INFO_THEME_DEFAULT) {
- // Remove font override.
- edited_control->remove_theme_font_override(edited_font);
- return;
- } else if (font_list->get_selected_id() == FONT_INFO_USER_CUSTOM) {
- // Restore "custom_font".
- edited_control->add_theme_font_override(edited_font, custom_font);
- return;
- } else {
- // Load new font resource using selected name and style.
- String name = font_list->get_item_text(font_list->get_selected());
- String sty = font_style_list->get_item_text(font_style_list->get_selected());
- if (sty.is_empty()) {
- sty = "Default";
- }
- if (fonts.has(name)) {
- Ref<FontData> fd = ResourceLoader::load(fonts[name][sty]);
- if (fd.is_valid()) {
- Ref<Font> f;
- f.instantiate();
- f->add_data(fd);
- edited_control->add_theme_font_override(edited_font, f);
- }
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font"));
+
+ if (font_list->get_selected_id() == FONT_INFO_THEME_DEFAULT) {
+ // Remove font override.
+ ur->add_do_method(edited_control, "remove_theme_font_override", edited_font);
+ } else if (font_list->get_selected_id() == FONT_INFO_USER_CUSTOM) {
+ // Restore "custom_font".
+ ur->add_do_method(edited_control, "add_theme_font_override", edited_font, custom_font);
+ } else {
+ // Load new font resource using selected name and style.
+ String name = font_list->get_item_text(font_list->get_selected());
+ String style = font_style_list->get_item_text(font_style_list->get_selected());
+ if (style.is_empty()) {
+ style = "Default";
+ }
+
+ if (fonts.has(name)) {
+ Ref<FontData> fd = ResourceLoader::load(fonts[name][style]);
+ if (fd.is_valid()) {
+ Ref<Font> font;
+ font.instantiate();
+ font->add_data(fd);
+ ur->add_do_method(edited_control, "add_theme_font_override", edited_font, font);
}
}
}
+
+ if (edited_control->has_theme_font_override(edited_font)) {
+ ur->add_undo_method(edited_control, "add_theme_font_override", edited_font, edited_control->get_theme_font(edited_font));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_font_override", edited_font);
+ }
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_font_size_selected(double p_size) {
- if (edited_control) {
- edited_control->add_theme_font_size_override(edited_font_size, p_size);
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Size"));
+
+ ur->add_do_method(edited_control, "add_theme_font_size_override", edited_font_size, p_size);
+ if (edited_control->has_theme_font_size_override(edited_font_size)) {
+ ur->add_undo_method(edited_control, "add_theme_font_size_override", edited_font_size, edited_control->get_theme_font_size(edited_font_size));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_font_size_override", edited_font_size);
}
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_outline_size_selected(double p_size) {
- if (edited_control) {
- edited_control->add_theme_constant_override("outline_size", p_size);
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Outline Size"));
+
+ ur->add_do_method(edited_control, "add_theme_constant_override", "outline_size", p_size);
+ if (edited_control->has_theme_constant_override("outline_size")) {
+ ur->add_undo_method(edited_control, "add_theme_constant_override", "outline_size", edited_control->get_theme_constant("outline_size"));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_constant_override", "outline_size");
}
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_font_color_changed(const Color &p_color) {
- if (edited_control) {
- edited_control->add_theme_color_override(edited_color, p_color);
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Color"), UndoRedo::MERGE_ENDS);
+
+ ur->add_do_method(edited_control, "add_theme_color_override", edited_color, p_color);
+ if (edited_control->has_theme_color_override(edited_color)) {
+ ur->add_undo_method(edited_control, "add_theme_color_override", edited_color, edited_control->get_theme_color(edited_color));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_color_override", edited_color);
}
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_outline_color_changed(const Color &p_color) {
- if (edited_control) {
- edited_control->add_theme_color_override("font_outline_color", p_color);
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Outline Color"), UndoRedo::MERGE_ENDS);
+
+ ur->add_do_method(edited_control, "add_theme_color_override", "font_outline_color", p_color);
+ if (edited_control->has_theme_color_override("font_outline_color")) {
+ ur->add_undo_method(edited_control, "add_theme_color_override", "font_outline_color", edited_control->get_theme_color("font_outline_color"));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_color_override", "font_outline_color");
}
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_clear_formatting() {
- if (edited_control) {
- edited_control->begin_bulk_theme_override();
- edited_control->remove_theme_font_override(edited_font);
- edited_control->remove_theme_font_size_override(edited_font_size);
- edited_control->remove_theme_color_override(edited_color);
- edited_control->remove_theme_color_override("font_outline_color");
- edited_control->remove_theme_constant_override("outline_size");
- edited_control->end_bulk_theme_override();
- _update_control();
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Clear Control Formatting"));
+
+ ur->add_do_method(edited_control, "begin_bulk_theme_override");
+ ur->add_undo_method(edited_control, "begin_bulk_theme_override");
+
+ ur->add_do_method(edited_control, "remove_theme_font_override", edited_font);
+ if (edited_control->has_theme_font_override(edited_font)) {
+ ur->add_undo_method(edited_control, "add_theme_font_override", edited_font, edited_control->get_theme_font(edited_font));
+ }
+
+ ur->add_do_method(edited_control, "remove_theme_font_size_override", edited_font_size);
+ if (edited_control->has_theme_font_size_override(edited_font_size)) {
+ ur->add_undo_method(edited_control, "add_theme_font_size_override", edited_font_size, edited_control->get_theme_font_size(edited_font_size));
+ }
+
+ ur->add_do_method(edited_control, "remove_theme_color_override", edited_color);
+ if (edited_control->has_theme_color_override(edited_color)) {
+ ur->add_undo_method(edited_control, "add_theme_color_override", edited_color, edited_control->get_theme_color(edited_color));
+ }
+
+ ur->add_do_method(edited_control, "remove_theme_color_override", "font_outline_color");
+ if (edited_control->has_theme_color_override("font_outline_color")) {
+ ur->add_undo_method(edited_control, "add_theme_color_override", "font_outline_color", edited_control->get_theme_color("font_outline_color"));
+ }
+
+ ur->add_do_method(edited_control, "remove_theme_constant_override", "outline_size");
+ if (edited_control->has_theme_constant_override("outline_size")) {
+ ur->add_undo_method(edited_control, "add_theme_constant_override", "outline_size", edited_control->get_theme_constant("outline_size"));
}
+
+ ur->add_do_method(edited_control, "end_bulk_theme_override");
+ ur->add_undo_method(edited_control, "end_bulk_theme_override");
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::edit(Object *p_object) {
diff --git a/editor/plugins/text_control_editor_plugin.h b/editor/plugins/text_control_editor_plugin.h
index 7f4aa3754c..d284a30f16 100644
--- a/editor/plugins/text_control_editor_plugin.h
+++ b/editor/plugins/text_control_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -70,7 +70,7 @@ class TextControlEditor : public HBoxContainer {
protected:
void _notification(int p_notification);
- static void _bind_methods(){};
+ static void _bind_methods();
void _find_resources(EditorFileSystemDirectory *p_dir);
void _reload_fonts(const String &p_path);
diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp
index cbde382d67..12d13571f8 100644
--- a/editor/plugins/text_editor.cpp
+++ b/editor/plugins/text_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/text_editor.h b/editor/plugins/text_editor.h
index 7404557f46..d3fb0c0a16 100644
--- a/editor/plugins/text_editor.h
+++ b/editor/plugins/text_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/texture_3d_editor_plugin.cpp b/editor/plugins/texture_3d_editor_plugin.cpp
index b4e394a1c0..6080f9df87 100644
--- a/editor/plugins/texture_3d_editor_plugin.cpp
+++ b/editor/plugins/texture_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/texture_3d_editor_plugin.h b/editor/plugins/texture_3d_editor_plugin.h
index 855194e644..5a200f6c11 100644
--- a/editor/plugins/texture_3d_editor_plugin.h
+++ b/editor/plugins/texture_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/texture_editor_plugin.cpp b/editor/plugins/texture_editor_plugin.cpp
index e25b0270b4..84b33f0986 100644
--- a/editor/plugins/texture_editor_plugin.cpp
+++ b/editor/plugins/texture_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -84,7 +84,7 @@ TexturePreview::TexturePreview(Ref<Texture2D> p_texture, bool p_show_metadata) {
texture_display->set_texture(p_texture);
texture_display->set_anchors_preset(TextureRect::PRESET_WIDE);
texture_display->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED);
- texture_display->set_expand(true);
+ texture_display->set_ignore_texture_size(true);
add_child(texture_display);
if (p_show_metadata) {
diff --git a/editor/plugins/texture_editor_plugin.h b/editor/plugins/texture_editor_plugin.h
index 60349febd7..5ba077d6fc 100644
--- a/editor/plugins/texture_editor_plugin.h
+++ b/editor/plugins/texture_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/texture_layered_editor_plugin.cpp b/editor/plugins/texture_layered_editor_plugin.cpp
index 1f536d13cf..a8c37d37fe 100644
--- a/editor/plugins/texture_layered_editor_plugin.cpp
+++ b/editor/plugins/texture_layered_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/texture_layered_editor_plugin.h b/editor/plugins/texture_layered_editor_plugin.h
index a7fe4b94e9..cd8eba1bfe 100644
--- a/editor/plugins/texture_layered_editor_plugin.h
+++ b/editor/plugins/texture_layered_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp
index 8e1c81a876..c03e55be69 100644
--- a/editor/plugins/texture_region_editor_plugin.cpp
+++ b/editor/plugins/texture_region_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/texture_region_editor_plugin.h b/editor/plugins/texture_region_editor_plugin.h
index c043d6ae33..23981ddb81 100644
--- a/editor/plugins/texture_region_editor_plugin.h
+++ b/editor/plugins/texture_region_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp
index b5d2b571f5..91c17399c2 100644
--- a/editor/plugins/theme_editor_plugin.cpp
+++ b/editor/plugins/theme_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -754,8 +754,9 @@ void ThemeItemImportTree::_import_selected() {
return;
}
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
ProgressDialog::get_singleton()->add_task("import_theme_items", TTR("Importing Theme Items"), selected_items.size() + 2);
int idx = 0;
@@ -808,7 +809,7 @@ void ThemeItemImportTree::_import_selected() {
}
}
- edited_theme->set_theme_item(ti.data_type, ti.item_name, ti.type_name, item_value);
+ new_snapshot->set_theme_item(ti.data_type, ti.item_name, ti.type_name, item_value);
}
idx++;
@@ -816,12 +817,24 @@ void ThemeItemImportTree::_import_selected() {
// Allow changes to be reported now that the operation is finished.
ProgressDialog::get_singleton()->task_step("import_theme_items", TTR("Updating the editor"), idx++);
- edited_theme->_unfreeze_and_propagate_changes();
+
// Make sure the task is not ended before the editor freezes to update the Inspector.
ProgressDialog::get_singleton()->task_step("import_theme_items", TTR("Finalizing"), idx++);
ProgressDialog::get_singleton()->end_task("import_theme_items");
- emit_signal(SNAME("items_imported"));
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Import Theme Items"));
+
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "clear");
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
+
+ ur->add_do_method(this, "emit_signal", SNAME("items_imported"));
+ ur->add_undo_method(this, "emit_signal", SNAME("items_imported"));
+
+ ur->commit_action();
}
void ThemeItemImportTree::set_edited_theme(const Ref<Theme> &p_theme) {
@@ -1296,6 +1309,7 @@ void ThemeItemEditorDialog::_update_edit_types() {
edit_items_message->set_text(TTR("Select a theme type from the list to edit its items.\nYou can add a custom type or import a type with its items from another theme."));
edit_items_message->show();
}
+
_update_edit_item_tree(selected_type);
}
@@ -1475,19 +1489,25 @@ void ThemeItemEditorDialog::_item_tree_button_pressed(Object *p_item, int p_colu
String item_name = item->get_text(0);
int data_type = item->get_parent()->get_metadata(0);
_open_rename_theme_item_dialog((Theme::DataType)data_type, item_name);
+ _update_edit_item_tree(edited_item_type);
} break;
case ITEMS_TREE_REMOVE_ITEM: {
String item_name = item->get_text(0);
int data_type = item->get_parent()->get_metadata(0);
- edited_theme->clear_theme_item((Theme::DataType)data_type, item_name, edited_item_type);
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Theme Item"));
+ ur->add_do_method(*edited_theme, "clear_theme_item", (Theme::DataType)data_type, item_name, edited_item_type);
+ ur->add_undo_method(*edited_theme, "set_theme_item", (Theme::DataType)data_type, item_name, edited_item_type, edited_theme->get_theme_item((Theme::DataType)data_type, item_name, edited_item_type));
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->commit_action();
} break;
case ITEMS_TREE_REMOVE_DATA_TYPE: {
int data_type = item->get_metadata(0);
_remove_data_type_items((Theme::DataType)data_type, edited_item_type);
} break;
}
-
- _update_edit_item_tree(edited_item_type);
}
void ThemeItemEditorDialog::_add_theme_type(const String &p_new_text) {
@@ -1500,57 +1520,91 @@ void ThemeItemEditorDialog::_add_theme_type(const String &p_new_text) {
edited_theme->add_font_size_type(new_type);
edited_theme->add_color_type(new_type);
edited_theme->add_constant_type(new_type);
+
_update_edit_types();
- // Force emit a change so that other parts of the editor can update.
edited_theme->emit_changed();
}
void ThemeItemEditorDialog::_add_theme_item(Theme::DataType p_data_type, String p_item_name, String p_item_type) {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Create Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_ICON:
- edited_theme->set_icon(p_item_name, p_item_type, Ref<Texture2D>());
+ ur->add_do_method(*edited_theme, "set_icon", p_item_name, p_item_type, Ref<Texture2D>());
+ ur->add_undo_method(*edited_theme, "clear_icon", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_STYLEBOX:
- edited_theme->set_stylebox(p_item_name, p_item_type, Ref<StyleBox>());
+ ur->add_do_method(*edited_theme, "set_stylebox", p_item_name, p_item_type, Ref<StyleBox>());
+ ur->add_undo_method(*edited_theme, "clear_stylebox", p_item_name, p_item_type);
+
+ if (theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(p_item_name, p_item_type))) {
+ ur->add_undo_method(theme_type_editor, "_unpin_leading_stylebox");
+ }
break;
case Theme::DATA_TYPE_FONT:
- edited_theme->set_font(p_item_name, p_item_type, Ref<Font>());
+ ur->add_do_method(*edited_theme, "set_font", p_item_name, p_item_type, Ref<Font>());
+ ur->add_undo_method(*edited_theme, "clear_font", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_FONT_SIZE:
- edited_theme->set_font_size(p_item_name, p_item_type, -1);
+ ur->add_do_method(*edited_theme, "set_font_size", p_item_name, p_item_type, -1);
+ ur->add_undo_method(*edited_theme, "clear_font_size", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_COLOR:
- edited_theme->set_color(p_item_name, p_item_type, Color());
+ ur->add_do_method(*edited_theme, "set_color", p_item_name, p_item_type, Color());
+ ur->add_undo_method(*edited_theme, "clear_color", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_CONSTANT:
- edited_theme->set_constant(p_item_name, p_item_type, 0);
+ ur->add_do_method(*edited_theme, "set_constant", p_item_name, p_item_type, 0);
+ ur->add_undo_method(*edited_theme, "clear_constant", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_MAX:
break; // Can't happen, but silences warning.
}
+
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->commit_action();
}
void ThemeItemEditorDialog::_remove_data_type_items(Theme::DataType p_data_type, String p_item_type) {
List<StringName> names;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Data Type Items From Theme"));
- edited_theme->get_theme_item_list(p_data_type, p_item_type, &names);
+ new_snapshot->get_theme_item_list(p_data_type, p_item_type, &names);
for (const StringName &E : names) {
- edited_theme->clear_theme_item(p_data_type, E, p_item_type);
+ new_snapshot->clear_theme_item(p_data_type, E, edited_item_type);
+
+ if (p_data_type == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, p_item_type))) {
+ ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
+ ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, p_item_type));
+ }
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
+
+ ur->add_do_method(theme_type_editor, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(theme_type_editor, "_update_edit_item_tree", edited_item_type);
+
+ ur->commit_action();
}
void ThemeItemEditorDialog::_remove_class_items() {
List<StringName> names;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Class Items From Theme"));
for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) {
Theme::DataType data_type = (Theme::DataType)dt;
@@ -1558,62 +1612,95 @@ void ThemeItemEditorDialog::_remove_class_items() {
names.clear();
Theme::get_default()->get_theme_item_list(data_type, edited_item_type, &names);
for (const StringName &E : names) {
- if (edited_theme->has_theme_item_nocheck(data_type, E, edited_item_type)) {
- edited_theme->clear_theme_item(data_type, E, edited_item_type);
+ if (new_snapshot->has_theme_item_nocheck(data_type, E, edited_item_type)) {
+ new_snapshot->clear_theme_item(data_type, E, edited_item_type);
+
+ if (dt == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, edited_item_type))) {
+ ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
+ ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, edited_item_type));
+ }
}
}
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
+
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
- _update_edit_item_tree(edited_item_type);
+ ur->commit_action();
}
void ThemeItemEditorDialog::_remove_custom_items() {
List<StringName> names;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Custom Items From Theme"));
for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) {
Theme::DataType data_type = (Theme::DataType)dt;
names.clear();
- edited_theme->get_theme_item_list(data_type, edited_item_type, &names);
+ new_snapshot->get_theme_item_list(data_type, edited_item_type, &names);
for (const StringName &E : names) {
if (!Theme::get_default()->has_theme_item_nocheck(data_type, E, edited_item_type)) {
- edited_theme->clear_theme_item(data_type, E, edited_item_type);
+ new_snapshot->clear_theme_item(data_type, E, edited_item_type);
+
+ if (dt == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, edited_item_type))) {
+ ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
+ ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, edited_item_type));
+ }
}
}
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
- _update_edit_item_tree(edited_item_type);
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+
+ ur->commit_action();
}
void ThemeItemEditorDialog::_remove_all_items() {
List<StringName> names;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove All Items From Theme"));
for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) {
Theme::DataType data_type = (Theme::DataType)dt;
names.clear();
- edited_theme->get_theme_item_list(data_type, edited_item_type, &names);
+ new_snapshot->get_theme_item_list(data_type, edited_item_type, &names);
for (const StringName &E : names) {
- edited_theme->clear_theme_item(data_type, E, edited_item_type);
+ new_snapshot->clear_theme_item(data_type, E, edited_item_type);
+
+ if (dt == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, edited_item_type))) {
+ ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
+ ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, edited_item_type));
+ }
}
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
- _update_edit_item_tree(edited_item_type);
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+
+ ur->commit_action();
}
void ThemeItemEditorDialog::_open_add_theme_item_dialog(int p_data_type) {
@@ -1692,14 +1779,21 @@ void ThemeItemEditorDialog::_confirm_edit_theme_item() {
if (item_popup_mode == CREATE_THEME_ITEM) {
_add_theme_item(edit_item_data_type, theme_item_name->get_text(), edited_item_type);
} else if (item_popup_mode == RENAME_THEME_ITEM) {
- edited_theme->rename_theme_item(edit_item_data_type, edit_item_old_name, theme_item_name->get_text(), edited_item_type);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Rename Theme Item"));
+
+ ur->add_do_method(*edited_theme, "rename_theme_item", edit_item_data_type, edit_item_old_name, theme_item_name->get_text(), edited_item_type);
+ ur->add_undo_method(*edited_theme, "rename_theme_item", edit_item_data_type, theme_item_name->get_text(), edit_item_old_name, edited_item_type);
+
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+
+ ur->commit_action();
}
item_popup_mode = ITEM_POPUP_MODE_MAX;
edit_item_data_type = Theme::DATA_TYPE_MAX;
edit_item_old_name = "";
-
- _update_edit_item_tree(edited_item_type);
}
void ThemeItemEditorDialog::_edit_theme_item_gui_input(const Ref<InputEvent> &p_event) {
@@ -1773,15 +1867,22 @@ void ThemeItemEditorDialog::_notification(int p_what) {
}
}
+void ThemeItemEditorDialog::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("_update_edit_types"), &ThemeItemEditorDialog::_update_edit_types);
+ ClassDB::bind_method(D_METHOD("_update_edit_item_tree"), &ThemeItemEditorDialog::_update_edit_item_tree);
+}
+
void ThemeItemEditorDialog::set_edited_theme(const Ref<Theme> &p_theme) {
edited_theme = p_theme;
}
-ThemeItemEditorDialog::ThemeItemEditorDialog() {
+ThemeItemEditorDialog::ThemeItemEditorDialog(ThemeTypeEditor *p_theme_type_editor) {
set_title(TTR("Manage Theme Items"));
get_ok_button()->set_text(TTR("Close"));
set_hide_on_ok(false); // Closing may require a confirmation in some cases.
+ theme_type_editor = p_theme_type_editor;
+
tc = memnew(TabContainer);
tc->set_tab_alignment(TabContainer::ALIGNMENT_LEFT);
add_child(tc);
@@ -2540,11 +2641,11 @@ void ThemeTypeEditor::_update_type_items() {
pin_leader_button->set_icon(get_theme_icon(SNAME("Pin"), SNAME("EditorIcons")));
pin_leader_button->set_tooltip(TTR("Unpin this StyleBox as a main style."));
item_control->add_child(pin_leader_button);
- pin_leader_button->connect("pressed", callable_mp(this, &ThemeTypeEditor::_unpin_leading_stylebox));
+ pin_leader_button->connect("pressed", callable_mp(this, &ThemeTypeEditor::_on_unpin_leader_button_pressed));
item_control->add_child(item_editor);
- if (leading_stylebox.stylebox.is_valid()) {
+ if (edited_theme->has_stylebox(leading_stylebox.item_name, edited_type)) {
item_editor->set_edited_resource(leading_stylebox.stylebox);
} else {
item_editor->set_edited_resource(RES());
@@ -2569,10 +2670,8 @@ void ThemeTypeEditor::_update_type_items() {
item_editor->set_base_type("StyleBox");
if (E.get()) {
- Ref<StyleBox> stylebox_value;
if (edited_theme->has_stylebox(E.key(), edited_type)) {
- stylebox_value = edited_theme->get_stylebox(E.key(), edited_type);
- item_editor->set_edited_resource(stylebox_value);
+ item_editor->set_edited_resource(edited_theme->get_stylebox(E.key(), edited_type));
} else {
item_editor->set_edited_resource(RES());
}
@@ -2585,7 +2684,7 @@ void ThemeTypeEditor::_update_type_items() {
pin_leader_button->set_icon(get_theme_icon(SNAME("Pin"), SNAME("EditorIcons")));
pin_leader_button->set_tooltip(TTR("Pin this StyleBox as a main style. Editing its properties will update the same properties in all other StyleBoxes of this type."));
item_control->add_child(pin_leader_button);
- pin_leader_button->connect("pressed", callable_mp(this, &ThemeTypeEditor::_pin_leading_stylebox), varray(item_editor, E.key()));
+ pin_leader_button->connect("pressed", callable_mp(this, &ThemeTypeEditor::_on_pin_leader_button_pressed), varray(item_editor, E.key()));
} else {
if (Theme::get_default()->has_stylebox(E.key(), edited_type)) {
item_editor->set_edited_resource(Theme::get_default()->get_stylebox(E.key(), edited_type));
@@ -2636,16 +2735,17 @@ void ThemeTypeEditor::_add_default_type_items() {
default_type = edited_theme->get_type_variation_base(edited_type);
}
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
updating = true;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
{
names.clear();
Theme::get_default()->get_icon_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_icon(E, edited_type)) {
- edited_theme->set_icon(E, edited_type, Ref<Texture2D>());
+ if (!new_snapshot->has_icon(E, edited_type)) {
+ new_snapshot->set_icon(E, edited_type, Theme::get_default()->get_icon(E, edited_type));
}
}
}
@@ -2653,8 +2753,8 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_stylebox_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_stylebox(E, edited_type)) {
- edited_theme->set_stylebox(E, edited_type, Ref<StyleBox>());
+ if (!new_snapshot->has_stylebox(E, edited_type)) {
+ new_snapshot->set_stylebox(E, edited_type, Theme::get_default()->get_stylebox(E, edited_type));
}
}
}
@@ -2662,8 +2762,8 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_font_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_font(E, edited_type)) {
- edited_theme->set_font(E, edited_type, Ref<Font>());
+ if (!new_snapshot->has_font(E, edited_type)) {
+ new_snapshot->set_font(E, edited_type, Theme::get_default()->get_font(E, edited_type));
}
}
}
@@ -2671,8 +2771,8 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_font_size_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_font_size(E, edited_type)) {
- edited_theme->set_font_size(E, edited_type, Theme::get_default()->get_font_size(E, default_type));
+ if (!new_snapshot->has_font_size(E, edited_type)) {
+ new_snapshot->set_font_size(E, edited_type, Theme::get_default()->get_font_size(E, edited_type));
}
}
}
@@ -2680,8 +2780,8 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_color_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_color(E, edited_type)) {
- edited_theme->set_color(E, edited_type, Theme::get_default()->get_color(E, default_type));
+ if (!new_snapshot->has_color(E, edited_type)) {
+ new_snapshot->set_color(E, edited_type, Theme::get_default()->get_color(E, edited_type));
}
}
}
@@ -2689,17 +2789,25 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_constant_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_constant(E, edited_type)) {
- edited_theme->set_constant(E, edited_type, Theme::get_default()->get_constant(E, default_type));
+ if (!new_snapshot->has_constant(E, edited_type)) {
+ new_snapshot->set_constant(E, edited_type, Theme::get_default()->get_constant(E, edited_type));
}
}
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
updating = false;
- _update_type_items();
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Override All Default Theme Items"));
+
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "clear");
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
+
+ ur->add_do_method(this, "_update_type_items");
+ ur->add_undo_method(this, "_update_type_items");
+
+ ur->commit_action();
}
void ThemeTypeEditor::_item_add_cbk(int p_data_type, Control *p_control) {
@@ -2709,27 +2817,43 @@ void ThemeTypeEditor::_item_add_cbk(int p_data_type, Control *p_control) {
}
String item_name = le->get_text().strip_edges();
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Add Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_COLOR: {
- edited_theme->set_color(item_name, edited_type, Color());
+ ur->add_do_method(*edited_theme, "set_color", item_name, edited_type, Color());
+ ur->add_undo_method(*edited_theme, "clear_color", item_name, edited_type);
} break;
case Theme::DATA_TYPE_CONSTANT: {
- edited_theme->set_constant(item_name, edited_type, 0);
+ ur->add_do_method(*edited_theme, "set_constant", item_name, edited_type, 0);
+ ur->add_undo_method(*edited_theme, "clear_constant", item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT: {
- edited_theme->set_font(item_name, edited_type, Ref<Font>());
+ ur->add_do_method(*edited_theme, "set_font", item_name, edited_type, Ref<Font>());
+ ur->add_undo_method(*edited_theme, "clear_font", item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT_SIZE: {
- edited_theme->set_font_size(item_name, edited_type, -1);
+ ur->add_do_method(*edited_theme, "set_font_size", item_name, edited_type, -1);
+ ur->add_undo_method(*edited_theme, "clear_font_size", item_name, edited_type);
} break;
case Theme::DATA_TYPE_ICON: {
- edited_theme->set_icon(item_name, edited_type, Ref<Texture2D>());
+ ur->add_do_method(*edited_theme, "set_icon", item_name, edited_type, Ref<Texture2D>());
+ ur->add_undo_method(*edited_theme, "clear_icon", item_name, edited_type);
} break;
case Theme::DATA_TYPE_STYLEBOX: {
- edited_theme->set_stylebox(item_name, edited_type, Ref<StyleBox>());
+ Ref<StyleBox> sb;
+ ur->add_do_method(*edited_theme, "set_stylebox", item_name, edited_type, sb);
+ ur->add_undo_method(*edited_theme, "clear_stylebox", item_name, edited_type);
+
+ if (is_stylebox_pinned(sb)) {
+ ur->add_undo_method(this, "_unpin_leading_stylebox");
+ }
} break;
}
+ ur->commit_action();
+
le->set_text("");
}
@@ -2738,53 +2862,94 @@ void ThemeTypeEditor::_item_add_lineedit_cbk(String p_value, int p_data_type, Co
}
void ThemeTypeEditor::_item_override_cbk(int p_data_type, String p_item_name) {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Override Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_COLOR: {
- edited_theme->set_color(p_item_name, edited_type, Theme::get_default()->get_color(p_item_name, edited_type));
+ ur->add_do_method(*edited_theme, "set_color", p_item_name, edited_type, Theme::get_default()->get_color(p_item_name, edited_type));
+ ur->add_undo_method(*edited_theme, "clear_color", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_CONSTANT: {
- edited_theme->set_constant(p_item_name, edited_type, Theme::get_default()->get_constant(p_item_name, edited_type));
+ ur->add_do_method(*edited_theme, "set_constant", p_item_name, edited_type, Theme::get_default()->get_constant(p_item_name, edited_type));
+ ur->add_undo_method(*edited_theme, "clear_constant", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT: {
- edited_theme->set_font(p_item_name, edited_type, Ref<Font>());
+ ur->add_do_method(*edited_theme, "set_font", p_item_name, edited_type, Ref<Font>());
+ ur->add_undo_method(*edited_theme, "clear_font", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT_SIZE: {
- edited_theme->set_font_size(p_item_name, edited_type, Theme::get_default()->get_font_size(p_item_name, edited_type));
+ ur->add_do_method(*edited_theme, "set_font_size", p_item_name, edited_type, Theme::get_default()->get_font_size(p_item_name, edited_type));
+ ur->add_undo_method(*edited_theme, "clear_font_size", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_ICON: {
- edited_theme->set_icon(p_item_name, edited_type, Ref<Texture2D>());
+ ur->add_do_method(*edited_theme, "set_icon", p_item_name, edited_type, Ref<Texture2D>());
+ ur->add_undo_method(*edited_theme, "clear_icon", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_STYLEBOX: {
- edited_theme->set_stylebox(p_item_name, edited_type, Ref<StyleBox>());
+ Ref<StyleBox> sb;
+ ur->add_do_method(*edited_theme, "set_stylebox", p_item_name, edited_type, sb);
+ ur->add_undo_method(*edited_theme, "clear_stylebox", p_item_name, edited_type);
+
+ if (is_stylebox_pinned(sb)) {
+ ur->add_undo_method(this, "_unpin_leading_stylebox");
+ }
} break;
}
+
+ ur->commit_action();
}
void ThemeTypeEditor::_item_remove_cbk(int p_data_type, String p_item_name) {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_COLOR: {
- edited_theme->clear_color(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_color", p_item_name, edited_type);
+ ur->add_undo_method(*edited_theme, "set_color", p_item_name, edited_type, edited_theme->get_color(p_item_name, edited_type));
} break;
case Theme::DATA_TYPE_CONSTANT: {
- edited_theme->clear_constant(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_constant", p_item_name, edited_type);
+ ur->add_undo_method(*edited_theme, "set_constant", p_item_name, edited_type, edited_theme->get_constant(p_item_name, edited_type));
} break;
case Theme::DATA_TYPE_FONT: {
- edited_theme->clear_font(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_font", p_item_name, edited_type);
+ if (edited_theme->has_font(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, edited_theme->get_font(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, Ref<Font>());
+ }
} break;
case Theme::DATA_TYPE_FONT_SIZE: {
- edited_theme->clear_font_size(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_font_size", p_item_name, edited_type);
+ ur->add_undo_method(*edited_theme, "set_font_size", p_item_name, edited_type, edited_theme->get_font_size(p_item_name, edited_type));
} break;
case Theme::DATA_TYPE_ICON: {
- edited_theme->clear_icon(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_icon", p_item_name, edited_type);
+ if (edited_theme->has_icon(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_icon", p_item_name, edited_type, edited_theme->get_icon(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_icon", p_item_name, edited_type, Ref<Texture2D>());
+ }
} break;
case Theme::DATA_TYPE_STYLEBOX: {
- edited_theme->clear_stylebox(p_item_name, edited_type);
+ Ref<StyleBox> sb = edited_theme->get_stylebox(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_stylebox", p_item_name, edited_type);
+ if (edited_theme->has_stylebox(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_stylebox", p_item_name, edited_type, sb);
+ } else {
+ ur->add_undo_method(*edited_theme, "set_stylebox", p_item_name, edited_type, Ref<StyleBox>());
+ }
- if (leading_stylebox.pinned && leading_stylebox.item_name == p_item_name) {
- _unpin_leading_stylebox();
+ if (is_stylebox_pinned(sb)) {
+ ur->add_do_method(this, "_unpin_leading_stylebox");
+ ur->add_undo_method(this, "_pin_leading_stylebox", p_item_name, sb);
}
} break;
}
+
+ ur->commit_action();
}
void ThemeTypeEditor::_item_rename_cbk(int p_data_type, String p_item_name, Control *p_control) {
@@ -2814,30 +2979,41 @@ void ThemeTypeEditor::_item_rename_confirmed(int p_data_type, String p_item_name
return;
}
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Rename Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_COLOR: {
- edited_theme->rename_color(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_color", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_color", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_CONSTANT: {
- edited_theme->rename_constant(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_constant", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_constant", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT: {
- edited_theme->rename_font(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_font", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_font", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT_SIZE: {
- edited_theme->rename_font_size(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_font_size", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_font_size", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_ICON: {
- edited_theme->rename_icon(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_icon", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_icon", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_STYLEBOX: {
- edited_theme->rename_stylebox(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_stylebox", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_stylebox", new_name, p_item_name, edited_type);
if (leading_stylebox.pinned && leading_stylebox.item_name == p_item_name) {
leading_stylebox.item_name = new_name;
}
} break;
}
+
+ ur->commit_action();
}
void ThemeTypeEditor::_item_rename_entered(String p_value, int p_data_type, String p_item_name, Control *p_control) {
@@ -2859,15 +3035,27 @@ void ThemeTypeEditor::_item_rename_canceled(int p_data_type, String p_item_name,
}
void ThemeTypeEditor::_color_item_changed(Color p_value, String p_item_name) {
- edited_theme->set_color(p_item_name, edited_type, p_value);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Color Item in Theme"), UndoRedo::MERGE_ENDS);
+ ur->add_do_method(*edited_theme, "set_color", p_item_name, edited_type, p_value);
+ ur->add_undo_method(*edited_theme, "set_color", p_item_name, edited_type, edited_theme->get_color(p_item_name, edited_type));
+ ur->commit_action();
}
void ThemeTypeEditor::_constant_item_changed(float p_value, String p_item_name) {
- edited_theme->set_constant(p_item_name, edited_type, int(p_value));
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Constant Item in Theme"));
+ ur->add_do_method(*edited_theme, "set_constant", p_item_name, edited_type, p_value);
+ ur->add_undo_method(*edited_theme, "set_constant", p_item_name, edited_type, edited_theme->get_constant(p_item_name, edited_type));
+ ur->commit_action();
}
void ThemeTypeEditor::_font_size_item_changed(float p_value, String p_item_name) {
- edited_theme->set_font_size(p_item_name, edited_type, int(p_value));
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Size Item in Theme"));
+ ur->add_do_method(*edited_theme, "set_font_size", p_item_name, edited_type, p_value);
+ ur->add_undo_method(*edited_theme, "set_font_size", p_item_name, edited_type, edited_theme->get_font_size(p_item_name, edited_type));
+ ur->commit_action();
}
void ThemeTypeEditor::_edit_resource_item(RES p_resource, bool p_edit) {
@@ -2875,53 +3063,123 @@ void ThemeTypeEditor::_edit_resource_item(RES p_resource, bool p_edit) {
}
void ThemeTypeEditor::_font_item_changed(Ref<Font> p_value, String p_item_name) {
- edited_theme->set_font(p_item_name, edited_type, p_value);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Item in Theme"));
+
+ ur->add_do_method(*edited_theme, "set_font", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<Font>());
+ if (edited_theme->has_font(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, edited_theme->get_font(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, Ref<Font>());
+ }
+
+ ur->add_do_method(this, "call_deferred", "_update_type_items");
+ ur->add_undo_method(this, "call_deferred", "_update_type_items");
+
+ ur->commit_action();
}
void ThemeTypeEditor::_icon_item_changed(Ref<Texture2D> p_value, String p_item_name) {
- edited_theme->set_icon(p_item_name, edited_type, p_value);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Icon Item in Theme"));
+
+ ur->add_do_method(*edited_theme, "set_icon", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<Texture2D>());
+ if (edited_theme->has_icon(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_icon", p_item_name, edited_type, edited_theme->get_icon(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_icon", p_item_name, edited_type, Ref<Texture2D>());
+ }
+
+ ur->add_do_method(this, "call_deferred", "_update_type_items");
+ ur->add_undo_method(this, "call_deferred", "_update_type_items");
+
+ ur->commit_action();
}
void ThemeTypeEditor::_stylebox_item_changed(Ref<StyleBox> p_value, String p_item_name) {
- edited_theme->set_stylebox(p_item_name, edited_type, p_value);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Stylebox Item in Theme"));
+
+ ur->add_do_method(*edited_theme, "set_stylebox", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<StyleBox>());
+ if (edited_theme->has_stylebox(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_stylebox", p_item_name, edited_type, edited_theme->get_stylebox(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_stylebox", p_item_name, edited_type, Ref<StyleBox>());
+ }
+
+ ur->add_do_method(this, "_change_pinned_stylebox");
+ ur->add_undo_method(this, "_change_pinned_stylebox");
+
+ ur->add_do_method(this, "call_deferred", "_update_type_items");
+ ur->add_undo_method(this, "call_deferred", "_update_type_items");
+
+ ur->commit_action();
+}
- if (leading_stylebox.pinned && leading_stylebox.item_name == p_item_name) {
+void ThemeTypeEditor::_change_pinned_stylebox() {
+ if (leading_stylebox.pinned) {
if (leading_stylebox.stylebox.is_valid()) {
leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
}
- leading_stylebox.stylebox = p_value;
- leading_stylebox.ref_stylebox = (p_value.is_valid() ? p_value->duplicate() : RES());
- if (p_value.is_valid()) {
- leading_stylebox.stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
- }
- }
-}
+ Ref<StyleBox> new_stylebox = edited_theme->get_stylebox(leading_stylebox.item_name, edited_type);
+ leading_stylebox.stylebox = new_stylebox;
+ leading_stylebox.ref_stylebox = (new_stylebox.is_valid() ? new_stylebox->duplicate() : RES());
-void ThemeTypeEditor::_pin_leading_stylebox(Control *p_editor, String p_item_name) {
- if (leading_stylebox.stylebox.is_valid()) {
+ if (leading_stylebox.stylebox.is_valid()) {
+ new_stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
+ }
+ } else if (leading_stylebox.stylebox.is_valid()) {
leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
}
+}
+void ThemeTypeEditor::_on_pin_leader_button_pressed(Control *p_editor, String p_item_name) {
Ref<StyleBox> stylebox;
if (Object::cast_to<EditorResourcePicker>(p_editor)) {
stylebox = Object::cast_to<EditorResourcePicker>(p_editor)->get_edited_resource();
}
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Pin Stylebox"));
+ ur->add_do_method(this, "_pin_leading_stylebox", p_item_name, stylebox);
+
+ if (leading_stylebox.pinned) {
+ ur->add_undo_method(this, "_pin_leading_stylebox", leading_stylebox.item_name, leading_stylebox.stylebox);
+ } else {
+ ur->add_undo_method(this, "_unpin_leading_stylebox");
+ }
+
+ ur->commit_action();
+}
+
+void ThemeTypeEditor::_pin_leading_stylebox(String p_item_name, Ref<StyleBox> p_stylebox) {
+ if (leading_stylebox.stylebox.is_valid()) {
+ leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
+ }
+
LeadingStylebox leader;
leader.pinned = true;
leader.item_name = p_item_name;
- leader.stylebox = stylebox;
- leader.ref_stylebox = (stylebox.is_valid() ? stylebox->duplicate() : RES());
+ leader.stylebox = p_stylebox;
+ leader.ref_stylebox = (p_stylebox.is_valid() ? p_stylebox->duplicate() : RES());
leading_stylebox = leader;
- if (leading_stylebox.stylebox.is_valid()) {
- leading_stylebox.stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
+ if (p_stylebox.is_valid()) {
+ p_stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
}
_update_type_items();
}
+void ThemeTypeEditor::_on_unpin_leader_button_pressed() {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Unpin Stylebox"));
+ ur->add_do_method(this, "_unpin_leading_stylebox");
+ ur->add_undo_method(this, "_pin_leading_stylebox", leading_stylebox.item_name, leading_stylebox.stylebox);
+ ur->commit_action();
+}
+
void ThemeTypeEditor::_unpin_leading_stylebox() {
if (leading_stylebox.stylebox.is_valid()) {
leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
@@ -2982,11 +3240,22 @@ void ThemeTypeEditor::_update_stylebox_from_leading() {
}
void ThemeTypeEditor::_type_variation_changed(const String p_value) {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Theme Type Variation"));
+
if (p_value.is_empty()) {
- edited_theme->clear_type_variation(edited_type);
+ ur->add_do_method(*edited_theme, "clear_type_variation", edited_type);
} else {
- edited_theme->set_type_variation(edited_type, StringName(p_value));
+ ur->add_do_method(*edited_theme, "set_type_variation", edited_type, StringName(p_value));
}
+
+ if (edited_theme->get_type_variation_base(edited_type) == "") {
+ ur->add_undo_method(*edited_theme, "clear_type_variation", edited_type);
+ } else {
+ ur->add_undo_method(*edited_theme, "set_type_variation", edited_type, edited_theme->get_type_variation_base(edited_type));
+ }
+
+ ur->commit_action();
}
void ThemeTypeEditor::_add_type_variation_cbk() {
@@ -3002,7 +3271,6 @@ void ThemeTypeEditor::_add_type_dialog_selected(const String p_type_name) {
select_type(p_type_name);
} else if (add_type_mode == ADD_VARIATION_BASE) {
_type_variation_changed(p_type_name);
- _update_type_items();
}
}
@@ -3028,6 +3296,13 @@ void ThemeTypeEditor::_notification(int p_what) {
}
}
+void ThemeTypeEditor::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("_update_type_items"), &ThemeTypeEditor::_update_type_items);
+ ClassDB::bind_method(D_METHOD("_pin_leading_stylebox"), &ThemeTypeEditor::_pin_leading_stylebox);
+ ClassDB::bind_method(D_METHOD("_unpin_leading_stylebox"), &ThemeTypeEditor::_unpin_leading_stylebox);
+ ClassDB::bind_method(D_METHOD("_change_pinned_stylebox"), &ThemeTypeEditor::_change_pinned_stylebox);
+}
+
void ThemeTypeEditor::set_edited_theme(const Ref<Theme> &p_theme) {
if (edited_theme.is_valid()) {
edited_theme->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_type_list_debounced));
@@ -3067,6 +3342,10 @@ void ThemeTypeEditor::select_type(String p_type_name) {
}
}
+bool ThemeTypeEditor::is_stylebox_pinned(Ref<StyleBox> p_stylebox) {
+ return leading_stylebox.pinned && leading_stylebox.stylebox == p_stylebox;
+}
+
ThemeTypeEditor::ThemeTypeEditor() {
VBoxContainer *main_vb = memnew(VBoxContainer);
add_child(main_vb);
@@ -3331,7 +3610,9 @@ ThemeEditor::ThemeEditor() {
theme_edit_button->connect("pressed", callable_mp(this, &ThemeEditor::_theme_edit_button_cbk));
top_menu->add_child(theme_edit_button);
- theme_edit_dialog = memnew(ThemeItemEditorDialog);
+ theme_type_editor = memnew(ThemeTypeEditor);
+
+ theme_edit_dialog = memnew(ThemeItemEditorDialog(theme_type_editor));
theme_edit_dialog->hide();
top_menu->add_child(theme_edit_dialog);
@@ -3381,7 +3662,6 @@ ThemeEditor::ThemeEditor() {
main_hs->add_child(preview_scene_dialog);
preview_scene_dialog->connect("file_selected", callable_mp(this, &ThemeEditor::_preview_scene_dialog_cbk));
- theme_type_editor = memnew(ThemeTypeEditor);
main_hs->add_child(theme_type_editor);
theme_type_editor->set_custom_minimum_size(Size2(280, 0) * EDSCALE);
}
diff --git a/editor/plugins/theme_editor_plugin.h b/editor/plugins/theme_editor_plugin.h
index bd1bf216e1..4c6b16a68c 100644
--- a/editor/plugins/theme_editor_plugin.h
+++ b/editor/plugins/theme_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -177,9 +177,13 @@ public:
ThemeItemImportTree();
};
+class ThemeTypeEditor;
+
class ThemeItemEditorDialog : public AcceptDialog {
GDCLASS(ThemeItemEditorDialog, AcceptDialog);
+ ThemeTypeEditor *theme_type_editor;
+
Ref<Theme> edited_theme;
TabContainer *tc;
@@ -258,11 +262,12 @@ class ThemeItemEditorDialog : public AcceptDialog {
protected:
void _notification(int p_what);
+ static void _bind_methods();
public:
void set_edited_theme(const Ref<Theme> &p_theme);
- ThemeItemEditorDialog();
+ ThemeItemEditorDialog(ThemeTypeEditor *p_theme_editor);
};
class ThemeTypeDialog : public ConfirmationDialog {
@@ -373,7 +378,10 @@ class ThemeTypeEditor : public MarginContainer {
void _font_item_changed(Ref<Font> p_value, String p_item_name);
void _icon_item_changed(Ref<Texture2D> p_value, String p_item_name);
void _stylebox_item_changed(Ref<StyleBox> p_value, String p_item_name);
- void _pin_leading_stylebox(Control *p_editor, String p_item_name);
+ void _change_pinned_stylebox();
+ void _on_pin_leader_button_pressed(Control *p_editor, String p_item_name);
+ void _pin_leading_stylebox(String p_item_name, Ref<StyleBox> p_stylebox);
+ void _on_unpin_leader_button_pressed();
void _unpin_leading_stylebox();
void _update_stylebox_from_leading();
@@ -384,10 +392,12 @@ class ThemeTypeEditor : public MarginContainer {
protected:
void _notification(int p_what);
+ static void _bind_methods();
public:
void set_edited_theme(const Ref<Theme> &p_theme);
void select_type(String p_type_name);
+ bool is_stylebox_pinned(Ref<StyleBox> p_stylebox);
ThemeTypeEditor();
};
diff --git a/editor/plugins/theme_editor_preview.cpp b/editor/plugins/theme_editor_preview.cpp
index 9a5ecd3802..c4ef6e086d 100644
--- a/editor/plugins/theme_editor_preview.cpp
+++ b/editor/plugins/theme_editor_preview.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -36,6 +36,8 @@
#include "editor/editor_scale.h"
+constexpr double REFRESH_TIMER = 1.5;
+
void ThemeEditorPreview::set_preview_theme(const Ref<Theme> &p_theme) {
preview_content->set_theme(p_theme);
}
@@ -66,7 +68,7 @@ void ThemeEditorPreview::_refresh_interval() {
}
void ThemeEditorPreview::_preview_visibility_changed() {
- set_process(is_visible());
+ set_process(is_visible_in_tree());
}
void ThemeEditorPreview::_picker_button_cbk() {
@@ -200,7 +202,7 @@ void ThemeEditorPreview::_notification(int p_what) {
case NOTIFICATION_PROCESS: {
time_left -= get_process_delta_time();
if (time_left < 0) {
- time_left = 1.5;
+ time_left = REFRESH_TIMER;
_refresh_interval();
}
} break;
diff --git a/editor/plugins/theme_editor_preview.h b/editor/plugins/theme_editor_preview.h
index 73422b4fba..a509ae3c50 100644
--- a/editor/plugins/theme_editor_preview.h
+++ b/editor/plugins/theme_editor_preview.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp
index e4a16274fe..fc4764f61e 100644
--- a/editor/plugins/tiles/atlas_merging_dialog.cpp
+++ b/editor/plugins/tiles/atlas_merging_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -301,7 +301,7 @@ AtlasMergingDialog::AtlasMergingDialog() {
preview = memnew(TextureRect);
preview->set_h_size_flags(Control::SIZE_EXPAND_FILL);
preview->set_v_size_flags(Control::SIZE_EXPAND_FILL);
- preview->set_expand(true);
+ preview->set_ignore_texture_size(true);
preview->hide();
preview->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED);
atlas_merging_right_panel->add_child(preview);
diff --git a/editor/plugins/tiles/atlas_merging_dialog.h b/editor/plugins/tiles/atlas_merging_dialog.h
index 7cb54bc17e..2ae94cf44a 100644
--- a/editor/plugins/tiles/atlas_merging_dialog.h
+++ b/editor/plugins/tiles/atlas_merging_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_atlas_view.cpp b/editor/plugins/tiles/tile_atlas_view.cpp
index 6a3261cbee..c85956991a 100644
--- a/editor/plugins/tiles/tile_atlas_view.cpp
+++ b/editor/plugins/tiles/tile_atlas_view.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_atlas_view.h b/editor/plugins/tiles/tile_atlas_view.h
index e1ca3eebee..ca7f083132 100644
--- a/editor/plugins/tiles/tile_atlas_view.h
+++ b/editor/plugins/tiles/tile_atlas_view.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_data_editors.cpp b/editor/plugins/tiles/tile_data_editors.cpp
index 5ded607ab5..73fd62d2c4 100644
--- a/editor/plugins/tiles/tile_data_editors.cpp
+++ b/editor/plugins/tiles/tile_data_editors.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_data_editors.h b/editor/plugins/tiles/tile_data_editors.h
index 3fc5e738bb..b45eb9530b 100644
--- a/editor/plugins/tiles/tile_data_editors.h
+++ b/editor/plugins/tiles/tile_data_editors.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp
index b4d6f3659d..aa92920722 100644
--- a/editor/plugins/tiles/tile_map_editor.cpp
+++ b/editor/plugins/tiles/tile_map_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_map_editor.h b/editor/plugins/tiles/tile_map_editor.h
index f462119727..b1bee03211 100644
--- a/editor/plugins/tiles/tile_map_editor.h
+++ b/editor/plugins/tiles/tile_map_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_proxies_manager_dialog.cpp b/editor/plugins/tiles/tile_proxies_manager_dialog.cpp
index 60a66ab954..ad44da8dc9 100644
--- a/editor/plugins/tiles/tile_proxies_manager_dialog.cpp
+++ b/editor/plugins/tiles/tile_proxies_manager_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_proxies_manager_dialog.h b/editor/plugins/tiles/tile_proxies_manager_dialog.h
index 6849be2cd6..b235d44982 100644
--- a/editor/plugins/tiles/tile_proxies_manager_dialog.h
+++ b/editor/plugins/tiles/tile_proxies_manager_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
index 660eb94cf5..c4cc9745ee 100644
--- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
+++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.h b/editor/plugins/tiles/tile_set_atlas_source_editor.h
index bd1fd2e7d0..51771c59ba 100644
--- a/editor/plugins/tiles/tile_set_atlas_source_editor.h
+++ b/editor/plugins/tiles/tile_set_atlas_source_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_set_editor.cpp b/editor/plugins/tiles/tile_set_editor.cpp
index b7495dbea9..ef8d423724 100644
--- a/editor/plugins/tiles/tile_set_editor.cpp
+++ b/editor/plugins/tiles/tile_set_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_set_editor.h b/editor/plugins/tiles/tile_set_editor.h
index 58312ce3df..98ebbae02f 100644
--- a/editor/plugins/tiles/tile_set_editor.h
+++ b/editor/plugins/tiles/tile_set_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
index 035fe57d95..240c017b84 100644
--- a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
+++ b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
index 4e33128be5..5b48ea4762 100644
--- a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
+++ b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/tiles/tiles_editor_plugin.cpp b/editor/plugins/tiles/tiles_editor_plugin.cpp
index 47dfc57b0f..f99fcb3675 100644
--- a/editor/plugins/tiles/tiles_editor_plugin.cpp
+++ b/editor/plugins/tiles/tiles_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -157,6 +157,17 @@ void TilesEditorPlugin::_update_editors() {
// Update the viewport.
CanvasItemEditor::get_singleton()->update_viewport();
+
+ // Update visibility of bottom panel buttons.
+ if (tileset_editor_button->is_pressed() && !tile_set.is_valid()) {
+ if (tile_map) {
+ editor_node->make_bottom_panel_item_visible(tilemap_editor);
+ } else {
+ editor_node->hide_bottom_panel();
+ }
+ }
+ tileset_editor_button->set_visible(tile_set.is_valid());
+ tilemap_editor_button->set_visible(tile_map);
}
void TilesEditorPlugin::_notification(int p_what) {
diff --git a/editor/plugins/tiles/tiles_editor_plugin.h b/editor/plugins/tiles/tiles_editor_plugin.h
index 33493040f6..59eb79480e 100644
--- a/editor/plugins/tiles/tiles_editor_plugin.h
+++ b/editor/plugins/tiles/tiles_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/version_control_editor_plugin.cpp b/editor/plugins/version_control_editor_plugin.cpp
index eea0d2789d..b1d5b348c4 100644
--- a/editor/plugins/version_control_editor_plugin.cpp
+++ b/editor/plugins/version_control_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/version_control_editor_plugin.h b/editor/plugins/version_control_editor_plugin.h
index 2782c1d9dc..86f98ad3aa 100644
--- a/editor/plugins/version_control_editor_plugin.h
+++ b/editor/plugins/version_control_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp
index 365cfd9232..03797b1797 100644
--- a/editor/plugins/visual_shader_editor_plugin.cpp
+++ b/editor/plugins/visual_shader_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -183,9 +183,15 @@ void VisualShaderGraphPlugin::set_input_port_default_value(VisualShader::Type p_
switch (p_value.get_type()) {
case Variant::COLOR: {
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ break;
+ }
button->set_custom_minimum_size(Size2(30, 0) * EDSCALE);
- if (!button->is_connected("draw", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_draw_color_over_button))) {
- button->connect("draw", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_draw_color_over_button), varray(button, p_value));
+
+ Callable ce = callable_mp(editor, &VisualShaderEditor::_draw_color_over_button);
+ if (!button->is_connected("draw", ce)) {
+ button->connect("draw", ce, varray(button, p_value));
}
} break;
case Variant::BOOL: {
@@ -320,13 +326,29 @@ void VisualShaderGraphPlugin::register_uniform_name(int p_node_id, LineEdit *p_u
}
void VisualShaderGraphPlugin::update_theme() {
- vector_expanded_color[0] = VisualShaderEditor::get_singleton()->get_theme_color(SNAME("axis_x_color"), SNAME("Editor")); // red
- vector_expanded_color[1] = VisualShaderEditor::get_singleton()->get_theme_color(SNAME("axis_y_color"), SNAME("Editor")); // green
- vector_expanded_color[2] = VisualShaderEditor::get_singleton()->get_theme_color(SNAME("axis_z_color"), SNAME("Editor")); // blue
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+ vector_expanded_color[0] = editor->get_theme_color(SNAME("axis_x_color"), SNAME("Editor")); // red
+ vector_expanded_color[1] = editor->get_theme_color(SNAME("axis_y_color"), SNAME("Editor")); // green
+ vector_expanded_color[2] = editor->get_theme_color(SNAME("axis_z_color"), SNAME("Editor")); // blue
}
void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
- if (p_type != visual_shader->get_shader_type()) {
+ if (!visual_shader.is_valid() || p_type != visual_shader->get_shader_type()) {
+ return;
+ }
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+ GraphEdit *graph = editor->graph;
+ if (!graph) {
+ return;
+ }
+ VisualShaderGraphPlugin *graph_plugin = editor->get_graph_plugin();
+ if (!graph_plugin) {
return;
}
@@ -370,13 +392,15 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
GraphNode *node = memnew(GraphNode);
+ graph->add_child(node);
+ editor->_update_created_node(node);
register_link(p_type, p_id, vsnode.ptr(), node);
if (is_resizable) {
size = resizable_node->get_size();
node->set_resizable(true);
- node->connect("resize_request", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_node_resized), varray((int)p_type, p_id));
+ node->connect("resize_request", callable_mp(editor, &VisualShaderEditor::_node_resized), varray((int)p_type, p_id));
}
if (is_expression) {
expression = expression_node->get_expression();
@@ -388,10 +412,10 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
if (p_id >= 2) {
node->set_show_close_button(true);
- node->connect("close_request", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_delete_node_request), varray(p_type, p_id), CONNECT_DEFERRED);
+ node->connect("close_request", callable_mp(editor, &VisualShaderEditor::_delete_node_request), varray(p_type, p_id), CONNECT_DEFERRED);
}
- node->connect("dragged", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_node_dragged), varray(p_id));
+ node->connect("dragged", callable_mp(editor, &VisualShaderEditor::_node_dragged), varray(p_id));
Control *custom_editor = nullptr;
int port_offset = 1;
@@ -416,6 +440,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
comment_label->set_v_size_flags(Control::SIZE_EXPAND_FILL);
comment_label->set_text(comment_node->get_description());
}
+ editor->call_deferred(SNAME("_set_node_size"), (int)p_type, p_id, size);
}
Ref<VisualShaderNodeParticleEmit> emit = vsnode;
@@ -424,32 +449,30 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
Ref<VisualShaderNodeUniform> uniform = vsnode;
- if (uniform.is_valid()) {
- VisualShaderEditor::get_singleton()->graph->add_child(node);
- VisualShaderEditor::get_singleton()->_update_created_node(node);
+ HBoxContainer *hb = nullptr;
+ if (uniform.is_valid()) {
LineEdit *uniform_name = memnew(LineEdit);
register_uniform_name(p_id, uniform_name);
+ uniform_name->set_h_size_flags(Control::SIZE_EXPAND_FILL);
uniform_name->set_text(uniform->get_uniform_name());
- node->add_child(uniform_name);
- uniform_name->connect("text_submitted", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_uniform_line_edit_changed), varray(p_id));
- uniform_name->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_uniform_line_edit_focus_out), varray(uniform_name, p_id));
-
- if (vsnode->get_input_port_count() == 0 && vsnode->get_output_port_count() == 1 && vsnode->get_output_port_name(0) == "") {
- //shortcut
- VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0);
- node->set_slot(1, false, VisualShaderNode::PORT_TYPE_SCALAR, Color(), true, port_right, type_color[port_right]);
- if (!vsnode->is_use_prop_slots()) {
- return;
- }
+ uniform_name->connect("text_submitted", callable_mp(editor, &VisualShaderEditor::_uniform_line_edit_changed), varray(p_id));
+ uniform_name->connect("focus_exited", callable_mp(editor, &VisualShaderEditor::_uniform_line_edit_focus_out), varray(uniform_name, p_id));
+
+ if (vsnode->get_output_port_count() == 1 && vsnode->get_output_port_name(0) == "") {
+ hb = memnew(HBoxContainer);
+ hb->add_child(uniform_name);
+ node->add_child(hb);
+ } else {
+ node->add_child(uniform_name);
}
port_offset++;
}
- for (int i = 0; i < VisualShaderEditor::get_singleton()->plugins.size(); i++) {
+ for (int i = 0; i < editor->plugins.size(); i++) {
vsnode->set_meta("id", p_id);
vsnode->set_meta("shader_type", (int)p_type);
- custom_editor = VisualShaderEditor::get_singleton()->plugins.write[i]->create_editor(visual_shader, vsnode);
+ custom_editor = editor->plugins.write[i]->create_editor(visual_shader, vsnode);
vsnode->remove_meta("id");
vsnode->remove_meta("shader_type");
if (custom_editor) {
@@ -461,146 +484,76 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
Ref<VisualShaderNodeCurveTexture> curve = vsnode;
- if (curve.is_valid()) {
- if (curve->get_texture().is_valid() && !curve->get_texture()->is_connected("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve))) {
- curve->get_texture()->connect("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve), varray(p_id));
- }
-
- HBoxContainer *hbox = memnew(HBoxContainer);
- custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- hbox->add_child(custom_editor);
- custom_editor = hbox;
- }
-
Ref<VisualShaderNodeCurveXYZTexture> curve_xyz = vsnode;
- if (curve_xyz.is_valid()) {
- if (curve_xyz->get_texture().is_valid() && !curve_xyz->get_texture()->is_connected("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve_xyz))) {
- curve_xyz->get_texture()->connect("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve_xyz), varray(p_id));
- }
- HBoxContainer *hbox = memnew(HBoxContainer);
- custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- hbox->add_child(custom_editor);
- custom_editor = hbox;
+ bool is_curve = curve.is_valid() || curve_xyz.is_valid();
+ if (is_curve) {
+ hb = memnew(HBoxContainer);
+ node->add_child(hb);
}
- if (custom_editor && !vsnode->is_use_prop_slots() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == "")) {
- //will be embedded in first port
- } else if (custom_editor) {
- port_offset++;
- node->add_child(custom_editor);
-
- bool is_curve = curve.is_valid() || curve_xyz.is_valid();
-
- if (is_curve) {
- // a default value handling
- {
- Variant default_value;
- bool port_left_used = false;
-
- for (const VisualShader::Connection &E : connections) {
- if (E.to_node == p_id && E.to_port == 0) {
- port_left_used = true;
- break;
- }
- }
-
- if (!port_left_used) {
- default_value = vsnode->get_input_port_default_value(0);
- }
-
- Button *button = memnew(Button);
- custom_editor->add_child(button);
- register_default_input_button(p_id, 0, button);
- custom_editor->move_child(button, 0);
-
- button->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_edit_port_default_input), varray(button, p_id, 0));
- if (default_value.get_type() != Variant::NIL) {
- set_input_port_default_value(p_type, p_id, 0, default_value);
- } else {
- button->hide();
- }
- }
-
- VisualShaderEditor::get_singleton()->graph->add_child(node);
- VisualShaderEditor::get_singleton()->_update_created_node(node);
-
- TextureButton *preview = memnew(TextureButton);
- preview->set_toggle_mode(true);
- preview->set_normal_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiVisibilityHidden"), SNAME("EditorIcons")));
- preview->set_pressed_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")));
- preview->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
-
- register_output_port(p_id, 0, preview);
-
- preview->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_preview_select_port), varray(p_id, 0), CONNECT_DEFERRED);
- custom_editor->add_child(preview);
+ if (curve.is_valid()) {
+ custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (vsnode->get_output_port_for_preview() >= 0) {
- show_port_preview(p_type, p_id, vsnode->get_output_port_for_preview());
- }
+ Callable ce = callable_mp(graph_plugin, &VisualShaderGraphPlugin::update_curve);
+ if (curve->get_texture().is_valid() && !curve->get_texture()->is_connected("changed", ce)) {
+ curve->get_texture()->connect("changed", ce, varray(p_id));
}
- if (curve.is_valid()) {
- CurveEditor *curve_editor = memnew(CurveEditor);
- node->add_child(curve_editor);
- register_curve_editor(p_id, 0, curve_editor);
- curve_editor->set_custom_minimum_size(Size2(300, 0));
- curve_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (curve->get_texture().is_valid()) {
- curve_editor->set_curve(curve->get_texture()->get_curve());
- }
+ CurveEditor *curve_editor = memnew(CurveEditor);
+ node->add_child(curve_editor);
+ register_curve_editor(p_id, 0, curve_editor);
+ curve_editor->set_custom_minimum_size(Size2(300, 0));
+ curve_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve->get_texture().is_valid()) {
+ curve_editor->set_curve(curve->get_texture()->get_curve());
}
+ }
- if (curve_xyz.is_valid()) {
- CurveEditor *curve_editor_x = memnew(CurveEditor);
- node->add_child(curve_editor_x);
- register_curve_editor(p_id, 0, curve_editor_x);
- curve_editor_x->set_custom_minimum_size(Size2(300, 0));
- curve_editor_x->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (curve_xyz->get_texture().is_valid()) {
- curve_editor_x->set_curve(curve_xyz->get_texture()->get_curve_x());
- }
-
- CurveEditor *curve_editor_y = memnew(CurveEditor);
- node->add_child(curve_editor_y);
- register_curve_editor(p_id, 1, curve_editor_y);
- curve_editor_y->set_custom_minimum_size(Size2(300, 0));
- curve_editor_y->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (curve_xyz->get_texture().is_valid()) {
- curve_editor_y->set_curve(curve_xyz->get_texture()->get_curve_y());
- }
+ if (curve_xyz.is_valid()) {
+ custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- CurveEditor *curve_editor_z = memnew(CurveEditor);
- node->add_child(curve_editor_z);
- register_curve_editor(p_id, 2, curve_editor_z);
- curve_editor_z->set_custom_minimum_size(Size2(300, 0));
- curve_editor_z->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (curve_xyz->get_texture().is_valid()) {
- curve_editor_z->set_curve(curve_xyz->get_texture()->get_curve_z());
- }
+ Callable ce = callable_mp(graph_plugin, &VisualShaderGraphPlugin::update_curve_xyz);
+ if (curve_xyz->get_texture().is_valid() && !curve_xyz->get_texture()->is_connected("changed", ce)) {
+ curve_xyz->get_texture()->connect("changed", ce, varray(p_id));
}
- if (is_curve) {
- VisualShaderNode::PortType port_left = vsnode->get_input_port_type(0);
- VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0);
- node->set_slot(1, true, port_left, type_color[port_left], true, port_right, type_color[port_right]);
+ CurveEditor *curve_editor_x = memnew(CurveEditor);
+ node->add_child(curve_editor_x);
+ register_curve_editor(p_id, 0, curve_editor_x);
+ curve_editor_x->set_custom_minimum_size(Size2(300, 0));
+ curve_editor_x->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve_xyz->get_texture().is_valid()) {
+ curve_editor_x->set_curve(curve_xyz->get_texture()->get_curve_x());
+ }
- VisualShaderEditor::get_singleton()->call_deferred(SNAME("_set_node_size"), (int)p_type, p_id, size);
+ CurveEditor *curve_editor_y = memnew(CurveEditor);
+ node->add_child(curve_editor_y);
+ register_curve_editor(p_id, 1, curve_editor_y);
+ curve_editor_y->set_custom_minimum_size(Size2(300, 0));
+ curve_editor_y->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve_xyz->get_texture().is_valid()) {
+ curve_editor_y->set_curve(curve_xyz->get_texture()->get_curve_y());
}
- if (vsnode->is_use_prop_slots()) {
- String error = vsnode->get_warning(visual_shader->get_mode(), p_type);
- if (!error.is_empty()) {
- Label *error_label = memnew(Label);
- error_label->add_theme_color_override("font_color", VisualShaderEditor::get_singleton()->get_theme_color(SNAME("error_color"), SNAME("Editor")));
- error_label->set_text(error);
- node->add_child(error_label);
- }
+ CurveEditor *curve_editor_z = memnew(CurveEditor);
+ node->add_child(curve_editor_z);
+ register_curve_editor(p_id, 2, curve_editor_z);
+ curve_editor_z->set_custom_minimum_size(Size2(300, 0));
+ curve_editor_z->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve_xyz->get_texture().is_valid()) {
+ curve_editor_z->set_curve(curve_xyz->get_texture()->get_curve_z());
+ }
+ }
- return;
+ if (custom_editor) {
+ if (is_curve || (hb == nullptr && !vsnode->is_use_prop_slots() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == ""))) {
+ //will be embedded in first port
+ } else {
+ port_offset++;
+ node->add_child(custom_editor);
+ custom_editor = nullptr;
}
- custom_editor = nullptr;
}
if (is_group) {
@@ -625,14 +578,14 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
Button *add_input_btn = memnew(Button);
add_input_btn->set_text(TTR("Add Input"));
- add_input_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_add_input_port), varray(p_id, group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, input_port_name), CONNECT_DEFERRED);
+ add_input_btn->connect("pressed", callable_mp(editor, &VisualShaderEditor::_add_input_port), varray(p_id, group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, input_port_name), CONNECT_DEFERRED);
hb2->add_child(add_input_btn);
hb2->add_spacer();
Button *add_output_btn = memnew(Button);
add_output_btn->set_text(TTR("Add Output"));
- add_output_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_add_output_port), varray(p_id, group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, output_port_name), CONNECT_DEFERRED);
+ add_output_btn->connect("pressed", callable_mp(editor, &VisualShaderEditor::_add_output_port), varray(p_id, group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, output_port_name), CONNECT_DEFERRED);
hb2->add_child(add_output_btn);
node->add_child(hb2);
@@ -693,7 +646,12 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
name_right = vector_expanded_name[expanded_port_counter++];
}
- HBoxContainer *hb = memnew(HBoxContainer);
+ bool is_first_hbox = false;
+ if (i == 0 && hb != nullptr) {
+ is_first_hbox = true;
+ } else {
+ hb = memnew(HBoxContainer);
+ }
hb->add_theme_constant_override("separation", 7 * EDSCALE);
Variant default_value;
@@ -705,7 +663,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
Button *button = memnew(Button);
hb->add_child(button);
register_default_input_button(p_id, i, button);
- button->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_edit_port_default_input), varray(button, p_id, i));
+ button->connect("pressed", callable_mp(editor, &VisualShaderEditor::_edit_port_default_input), varray(button, p_id, i));
if (default_value.get_type() != Variant::NIL) { // only a label
set_input_port_default_value(p_type, p_id, i, default_value);
} else {
@@ -728,20 +686,20 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
type_box->add_item(TTR("Sampler"));
type_box->select(group_node->get_input_port_type(i));
type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
- type_box->connect("item_selected", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_input_port_type), varray(p_id, i), CONNECT_DEFERRED);
+ type_box->connect("item_selected", callable_mp(editor, &VisualShaderEditor::_change_input_port_type), varray(p_id, i), CONNECT_DEFERRED);
LineEdit *name_box = memnew(LineEdit);
hb->add_child(name_box);
name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0));
name_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
name_box->set_text(name_left);
- name_box->connect("text_submitted", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_input_port_name), varray(name_box, p_id, i), CONNECT_DEFERRED);
- name_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, false), CONNECT_DEFERRED);
+ name_box->connect("text_submitted", callable_mp(editor, &VisualShaderEditor::_change_input_port_name), varray(name_box, p_id, i), CONNECT_DEFERRED);
+ name_box->connect("focus_exited", callable_mp(editor, &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, false), CONNECT_DEFERRED);
Button *remove_btn = memnew(Button);
remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")));
remove_btn->set_tooltip(TTR("Remove") + " " + name_left);
- remove_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_remove_input_port), varray(p_id, i), CONNECT_DEFERRED);
+ remove_btn->connect("pressed", callable_mp(editor, &VisualShaderEditor::_remove_input_port), varray(p_id, i), CONNECT_DEFERRED);
hb->add_child(remove_btn);
} else {
Label *label = memnew(Label);
@@ -752,14 +710,14 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
if (vsnode->get_input_port_default_hint(i) != "" && !port_left_used) {
Label *hint_label = memnew(Label);
hint_label->set_text("[" + vsnode->get_input_port_default_hint(i) + "]");
- hint_label->add_theme_color_override("font_color", VisualShaderEditor::get_singleton()->get_theme_color(SNAME("font_readonly_color"), SNAME("TextEdit")));
+ hint_label->add_theme_color_override("font_color", editor->get_theme_color(SNAME("font_readonly_color"), SNAME("TextEdit")));
hint_label->add_theme_style_override("normal", label_style);
hb->add_child(hint_label);
}
}
}
- if (!is_group) {
+ if (!is_group && !is_first_hbox) {
hb->add_spacer();
}
@@ -768,7 +726,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
Button *remove_btn = memnew(Button);
remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")));
remove_btn->set_tooltip(TTR("Remove") + " " + name_left);
- remove_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_remove_output_port), varray(p_id, i), CONNECT_DEFERRED);
+ remove_btn->connect("pressed", callable_mp(editor, &VisualShaderEditor::_remove_output_port), varray(p_id, i), CONNECT_DEFERRED);
hb->add_child(remove_btn);
LineEdit *name_box = memnew(LineEdit);
@@ -776,8 +734,8 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0));
name_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
name_box->set_text(name_right);
- name_box->connect("text_submitted", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_output_port_name), varray(name_box, p_id, i), CONNECT_DEFERRED);
- name_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, true), CONNECT_DEFERRED);
+ name_box->connect("text_submitted", callable_mp(editor, &VisualShaderEditor::_change_output_port_name), varray(name_box, p_id, i), CONNECT_DEFERRED);
+ name_box->connect("focus_exited", callable_mp(editor, &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, true), CONNECT_DEFERRED);
OptionButton *type_box = memnew(OptionButton);
hb->add_child(type_box);
@@ -788,7 +746,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
type_box->add_item(TTR("Transform"));
type_box->select(group_node->get_output_port_type(i));
type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
- type_box->connect("item_selected", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_output_port_type), varray(p_id, i), CONNECT_DEFERRED);
+ type_box->connect("item_selected", callable_mp(editor, &VisualShaderEditor::_change_output_port_type), varray(p_id, i), CONNECT_DEFERRED);
} else {
Label *label = memnew(Label);
label->set_text(name_right);
@@ -802,23 +760,23 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
if (vsnode->is_output_port_expandable(i)) {
TextureButton *expand = memnew(TextureButton);
expand->set_toggle_mode(true);
- expand->set_normal_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiTreeArrowDown"), SNAME("EditorIcons")));
- expand->set_pressed_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiTreeArrowRight"), SNAME("EditorIcons")));
+ expand->set_normal_texture(editor->get_theme_icon(SNAME("GuiTreeArrowDown"), SNAME("EditorIcons")));
+ expand->set_pressed_texture(editor->get_theme_icon(SNAME("GuiTreeArrowRight"), SNAME("EditorIcons")));
expand->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
expand->set_pressed(vsnode->_is_output_port_expanded(i));
- expand->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_expand_output_port), varray(p_id, i, !vsnode->_is_output_port_expanded(i)), CONNECT_DEFERRED);
+ expand->connect("pressed", callable_mp(editor, &VisualShaderEditor::_expand_output_port), varray(p_id, i, !vsnode->_is_output_port_expanded(i)), CONNECT_DEFERRED);
hb->add_child(expand);
}
if (vsnode->has_output_port_preview(i) && port_right != VisualShaderNode::PORT_TYPE_TRANSFORM && port_right != VisualShaderNode::PORT_TYPE_SAMPLER) {
TextureButton *preview = memnew(TextureButton);
preview->set_toggle_mode(true);
- preview->set_normal_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiVisibilityHidden"), SNAME("EditorIcons")));
- preview->set_pressed_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")));
+ preview->set_normal_texture(editor->get_theme_icon(SNAME("GuiVisibilityHidden"), SNAME("EditorIcons")));
+ preview->set_pressed_texture(editor->get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")));
preview->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
register_output_port(p_id, j, preview);
- preview->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_preview_select_port), varray(p_id, j), CONNECT_DEFERRED);
+ preview->connect("pressed", callable_mp(editor, &VisualShaderEditor::_preview_select_port), varray(p_id, j), CONNECT_DEFERRED);
hb->add_child(preview);
}
}
@@ -830,13 +788,19 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
port_offset++;
}
- node->add_child(hb);
+ if (!is_first_hbox) {
+ node->add_child(hb);
+ }
if (expanded_type != VisualShaderNode::PORT_TYPE_SCALAR) {
continue;
}
- node->set_slot(i + port_offset, valid_left, port_left, type_color[port_left], valid_right, port_right, type_color[port_right]);
+ int idx = 1;
+ if (!is_first_hbox) {
+ idx = i + port_offset;
+ }
+ node->set_slot(idx, valid_left, port_left, type_color[port_left], valid_right, port_right, type_color[port_right]);
if (vsnode->_is_output_port_expanded(i)) {
if (vsnode->get_output_port_type(i) == VisualShaderNode::PORT_TYPE_VECTOR) {
@@ -879,7 +843,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
String error = vsnode->get_warning(visual_shader->get_mode(), p_type);
if (!error.is_empty()) {
Label *error_label = memnew(Label);
- error_label->add_theme_color_override("font_color", VisualShaderEditor::get_singleton()->get_theme_color(SNAME("error_color"), SNAME("Editor")));
+ error_label->add_theme_color_override("font_color", editor->get_theme_color(SNAME("error_color"), SNAME("Editor")));
error_label->set_text(error);
node->add_child(error_label);
}
@@ -905,7 +869,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
expression_box->set_syntax_highlighter(expression_syntax_highlighter);
expression_box->add_theme_color_override("background_color", background_color);
- for (const String &E : VisualShaderEditor::get_singleton()->keyword_list) {
+ for (const String &E : editor->keyword_list) {
if (ShaderLanguage::is_control_flow_keyword(E)) {
expression_syntax_highlighter->add_keyword_color(E, control_flow_keyword_color);
} else {
@@ -913,8 +877,8 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
}
- expression_box->add_theme_font_override("font", VisualShaderEditor::get_singleton()->get_theme_font(SNAME("expression"), SNAME("EditorFonts")));
- expression_box->add_theme_font_size_override("font_size", VisualShaderEditor::get_singleton()->get_theme_font_size(SNAME("expression_size"), SNAME("EditorFonts")));
+ expression_box->add_theme_font_override("font", editor->get_theme_font(SNAME("expression"), SNAME("EditorFonts")));
+ expression_box->add_theme_font_size_override("font_size", editor->get_theme_font_size(SNAME("expression_size"), SNAME("EditorFonts")));
expression_box->add_theme_color_override("font_color", text_color);
expression_syntax_highlighter->set_number_color(number_color);
expression_syntax_highlighter->set_symbol_color(symbol_color);
@@ -935,18 +899,11 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
expression_box->set_context_menu_enabled(false);
expression_box->set_draw_line_numbers(true);
- expression_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_expression_focus_out), varray(expression_box, p_id));
+ expression_box->connect("focus_exited", callable_mp(editor, &VisualShaderEditor::_expression_focus_out), varray(expression_box, p_id));
}
- if (!uniform.is_valid()) {
- VisualShaderEditor::get_singleton()->graph->add_child(node);
- if (is_comment) {
- VisualShaderEditor::get_singleton()->graph->move_child(node, 0); // to prevents a bug where comment node overlaps its content
- }
- VisualShaderEditor::get_singleton()->_update_created_node(node);
- if (is_resizable) {
- VisualShaderEditor::get_singleton()->call_deferred(SNAME("_set_node_size"), (int)p_type, p_id, size);
- }
+ if (is_comment) {
+ graph->move_child(node, 0); // to prevents a bug where comment node overlaps its content
}
}
@@ -959,8 +916,18 @@ void VisualShaderGraphPlugin::remove_node(VisualShader::Type p_type, int p_id) {
}
void VisualShaderGraphPlugin::connect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) {
- if (visual_shader->get_shader_type() == p_type) {
- VisualShaderEditor::get_singleton()->graph->connect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+ GraphEdit *graph = editor->graph;
+ if (!graph) {
+ return;
+ }
+
+ if (visual_shader.is_valid() && visual_shader->get_shader_type() == p_type) {
+ graph->connect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+
connections.push_back({ p_from_node, p_from_port, p_to_node, p_to_port });
if (links[p_to_node].input_ports.has(p_to_port) && links[p_to_node].input_ports[p_to_port].default_input_button != nullptr) {
links[p_to_node].input_ports[p_to_port].default_input_button->hide();
@@ -969,8 +936,18 @@ void VisualShaderGraphPlugin::connect_nodes(VisualShader::Type p_type, int p_fro
}
void VisualShaderGraphPlugin::disconnect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) {
- if (visual_shader->get_shader_type() == p_type) {
- VisualShaderEditor::get_singleton()->graph->disconnect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+ GraphEdit *graph = editor->graph;
+ if (!graph) {
+ return;
+ }
+
+ if (visual_shader.is_valid() && visual_shader->get_shader_type() == p_type) {
+ graph->disconnect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+
for (const List<VisualShader::Connection>::Element *E = connections.front(); E; E = E->next()) {
if (E->get().from_node == p_from_node && E->get().from_port == p_from_port && E->get().to_node == p_to_node && E->get().to_port == p_to_port) {
connections.erase(E);
@@ -1001,8 +978,10 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
}
visual_shader = Ref<VisualShader>(p_visual_shader);
graph_plugin->register_shader(visual_shader.ptr());
- if (!visual_shader->is_connected("changed", callable_mp(this, &VisualShaderEditor::_update_preview))) {
- visual_shader->connect("changed", callable_mp(this, &VisualShaderEditor::_update_preview));
+
+ Callable ce = callable_mp(this, &VisualShaderEditor::_update_preview);
+ if (!visual_shader->is_connected("changed", ce)) {
+ visual_shader->connect("changed", ce);
}
#ifndef DISABLE_DEPRECATED
Dictionary engine_version = Engine::get_singleton()->get_version_info();
@@ -1029,8 +1008,9 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
_set_mode(visual_shader->get_mode());
} else {
if (visual_shader.is_valid()) {
- if (visual_shader->is_connected("changed", callable_mp(this, &VisualShaderEditor::_update_preview))) {
- visual_shader->disconnect("changed", callable_mp(this, &VisualShaderEditor::_update_preview));
+ Callable ce = callable_mp(this, &VisualShaderEditor::_update_preview);
+ if (visual_shader->is_connected("changed", ce)) {
+ visual_shader->disconnect("changed", ce);
}
}
visual_shader.unref();
@@ -4008,19 +3988,8 @@ VisualShaderEditor *VisualShaderEditor::singleton = nullptr;
VisualShaderEditor::VisualShaderEditor() {
singleton = this;
- updating = false;
- saved_node_pos_dirty = false;
- saved_node_pos = Point2(0, 0);
ShaderLanguage::get_keyword_list(&keyword_list);
- pending_update_preview = false;
- shader_error = false;
-
- to_node = -1;
- to_slot = -1;
- from_node = -1;
- from_slot = -1;
-
graph = memnew(GraphEdit);
graph->get_zoom_hbox()->set_h_size_flags(SIZE_EXPAND_FILL);
graph->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -4836,7 +4805,10 @@ public:
}
void _item_selected(int p_item) {
- VisualShaderEditor::get_singleton()->call_deferred(SNAME("_input_select_item"), input, get_item_text(p_item));
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (editor) {
+ editor->call_deferred(SNAME("_input_select_item"), input, get_item_text(p_item));
+ }
}
void setup(const Ref<VisualShaderNodeInput> &p_input) {
@@ -4880,7 +4852,10 @@ public:
}
void _item_selected(int p_item) {
- VisualShaderEditor::get_singleton()->call_deferred(SNAME("_uniform_select_item"), uniform_ref, get_item_text(p_item));
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (editor) {
+ editor->call_deferred(SNAME("_uniform_select_item"), uniform_ref, get_item_text(p_item));
+ }
}
void setup(const Ref<VisualShaderNodeUniformRef> &p_uniform_ref) {
@@ -4948,8 +4923,14 @@ public:
}
}
if (p_property != "constant") {
- undo_redo->add_do_method(VisualShaderEditor::get_singleton()->get_graph_plugin(), "update_node_deferred", shader_type, node_id);
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton()->get_graph_plugin(), "update_node_deferred", shader_type, node_id);
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (editor) {
+ VisualShaderGraphPlugin *graph_plugin = editor->get_graph_plugin();
+ if (graph_plugin) {
+ undo_redo->add_do_method(graph_plugin, "update_node_deferred", shader_type, node_id);
+ undo_redo->add_undo_method(graph_plugin, "update_node_deferred", shader_type, node_id);
+ }
+ }
}
undo_redo->commit_action();
@@ -5101,6 +5082,11 @@ Control *VisualShaderNodePluginDefault::create_editor(const Ref<Resource> &p_par
}
void EditorPropertyShaderMode::_option_selected(int p_which) {
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+
//will not use this, instead will do all the logic setting manually
//emit_signal(SNAME("property_changed"), get_edited_property(), p_which);
@@ -5116,8 +5102,8 @@ void EditorPropertyShaderMode::_option_selected(int p_which) {
undo_redo->add_do_method(visual_shader.ptr(), "set_mode", p_which);
undo_redo->add_undo_method(visual_shader.ptr(), "set_mode", visual_shader->get_mode());
- undo_redo->add_do_method(VisualShaderEditor::get_singleton(), "_set_mode", p_which);
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_set_mode", visual_shader->get_mode());
+ undo_redo->add_do_method(editor, "_set_mode", p_which);
+ undo_redo->add_undo_method(editor, "_set_mode", visual_shader->get_mode());
//now undo is hell
@@ -5156,12 +5142,11 @@ void EditorPropertyShaderMode::_option_selected(int p_which) {
}
}
- undo_redo->add_do_method(VisualShaderEditor::get_singleton(), "_update_options_menu");
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_update_options_menu");
+ undo_redo->add_do_method(editor, "_update_options_menu");
+ undo_redo->add_undo_method(editor, "_update_options_menu");
- //update graph
- undo_redo->add_do_method(VisualShaderEditor::get_singleton(), "_update_graph");
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_update_graph");
+ undo_redo->add_do_method(editor, "_update_graph");
+ undo_redo->add_undo_method(editor, "_update_graph");
undo_redo->commit_action();
}
diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h
index 74ccda3c9a..2b837ef4a0 100644
--- a/editor/plugins/visual_shader_editor_plugin.h
+++ b/editor/plugins/visual_shader_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -131,42 +131,42 @@ class VisualShaderEditor : public VBoxContainer {
GDCLASS(VisualShaderEditor, VBoxContainer);
friend class VisualShaderGraphPlugin;
- CustomPropertyEditor *property_editor;
- int editing_node;
- int editing_port;
+ CustomPropertyEditor *property_editor = nullptr;
+ int editing_node = -1;
+ int editing_port = -1;
Ref<VisualShader> visual_shader;
- GraphEdit *graph;
- Button *add_node;
- Button *preview_shader;
+ GraphEdit *graph = nullptr;
+ Button *add_node = nullptr;
+ Button *preview_shader = nullptr;
OptionButton *edit_type = nullptr;
- OptionButton *edit_type_standard;
- OptionButton *edit_type_particles;
- OptionButton *edit_type_sky;
- OptionButton *edit_type_fog;
- CheckBox *custom_mode_box;
+ OptionButton *edit_type_standard = nullptr;
+ OptionButton *edit_type_particles = nullptr;
+ OptionButton *edit_type_sky = nullptr;
+ OptionButton *edit_type_fog = nullptr;
+ CheckBox *custom_mode_box = nullptr;
bool custom_mode_enabled = false;
- bool pending_update_preview;
- bool shader_error;
- Window *preview_window;
- VBoxContainer *preview_vbox;
- CodeEdit *preview_text;
- Ref<CodeHighlighter> syntax_highlighter;
- PanelContainer *error_panel;
- Label *error_label;
+ bool pending_update_preview = false;
+ bool shader_error = false;
+ Window *preview_window = nullptr;
+ VBoxContainer *preview_vbox = nullptr;
+ CodeEdit *preview_text = nullptr;
+ Ref<CodeHighlighter> syntax_highlighter = nullptr;
+ PanelContainer *error_panel = nullptr;
+ Label *error_label = nullptr;
- UndoRedo *undo_redo;
+ UndoRedo *undo_redo = nullptr;
Point2 saved_node_pos;
- bool saved_node_pos_dirty;
+ bool saved_node_pos_dirty = false;
- ConfirmationDialog *members_dialog;
+ ConfirmationDialog *members_dialog = nullptr;
VisualShaderNode::PortType members_input_port_type = VisualShaderNode::PORT_TYPE_MAX;
VisualShaderNode::PortType members_output_port_type = VisualShaderNode::PORT_TYPE_MAX;
- PopupMenu *popup_menu;
+ PopupMenu *popup_menu = nullptr;
PopupMenu *constants_submenu = nullptr;
- MenuButton *tools;
+ MenuButton *tools = nullptr;
PopupPanel *comment_title_change_popup = nullptr;
LineEdit *comment_title_change_edit = nullptr;
@@ -231,11 +231,11 @@ class VisualShaderEditor : public VBoxContainer {
SET_COMMENT_DESCRIPTION,
};
- Tree *members;
- AcceptDialog *alert;
- LineEdit *node_filter;
- RichTextLabel *node_desc;
- Label *highend_label;
+ Tree *members = nullptr;
+ AcceptDialog *alert = nullptr;
+ LineEdit *node_filter = nullptr;
+ RichTextLabel *node_desc = nullptr;
+ Label *highend_label = nullptr;
void _tools_menu_option(int p_idx);
void _show_members_dialog(bool at_mouse_pos, VisualShaderNode::PortType p_input_port_type = VisualShaderNode::PORT_TYPE_MAX, VisualShaderNode::PortType p_output_port_type = VisualShaderNode::PORT_TYPE_MAX);
@@ -330,7 +330,7 @@ class VisualShaderEditor : public VBoxContainer {
bool drag_dirty = false;
void _node_dragged(const Vector2 &p_from, const Vector2 &p_to, int p_node);
void _nodes_dragged();
- bool updating;
+ bool updating = false;
void _connection_request(const String &p_from, int p_from_index, const String &p_to, int p_to_index);
void _disconnection_request(const String &p_from, int p_from_index, const String &p_to, int p_to_index);
@@ -347,10 +347,10 @@ class VisualShaderEditor : public VBoxContainer {
void _edit_port_default_input(Object *p_button, int p_node, int p_port);
void _port_edited();
- int to_node;
- int to_slot;
- int from_node;
- int from_slot;
+ int to_node = -1;
+ int to_slot = -1;
+ int from_node = -1;
+ int from_slot = -1;
Set<int> selected_constants;
Set<int> selected_uniforms;
@@ -480,9 +480,9 @@ public:
class VisualShaderEditorPlugin : public EditorPlugin {
GDCLASS(VisualShaderEditorPlugin, EditorPlugin);
- VisualShaderEditor *visual_shader_editor;
- EditorNode *editor;
- Button *button;
+ VisualShaderEditor *visual_shader_editor = nullptr;
+ EditorNode *editor = nullptr;
+ Button *button = nullptr;
public:
virtual String get_name() const override { return "VisualShader"; }
@@ -504,7 +504,7 @@ public:
class EditorPropertyShaderMode : public EditorProperty {
GDCLASS(EditorPropertyShaderMode, EditorProperty);
- OptionButton *options;
+ OptionButton *options = nullptr;
void _option_selected(int p_which);
diff --git a/editor/plugins/voxel_gi_editor_plugin.cpp b/editor/plugins/voxel_gi_editor_plugin.cpp
index 4e81fc4e77..1fd47b67c5 100644
--- a/editor/plugins/voxel_gi_editor_plugin.cpp
+++ b/editor/plugins/voxel_gi_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/plugins/voxel_gi_editor_plugin.h b/editor/plugins/voxel_gi_editor_plugin.h
index ed66728557..4c7865d868 100644
--- a/editor/plugins/voxel_gi_editor_plugin.h
+++ b/editor/plugins/voxel_gi_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/pot_generator.cpp b/editor/pot_generator.cpp
index d57345cac1..4d9efefbd3 100644
--- a/editor/pot_generator.cpp
+++ b/editor/pot_generator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/pot_generator.h b/editor/pot_generator.h
index 61300064ba..2b42c681e5 100644
--- a/editor/pot_generator.h
+++ b/editor/pot_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/progress_dialog.cpp b/editor/progress_dialog.cpp
index 95a5646013..1644bd7e7f 100644
--- a/editor/progress_dialog.cpp
+++ b/editor/progress_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/progress_dialog.h b/editor/progress_dialog.h
index 3f4b1d2944..880e6bc9d4 100644
--- a/editor/progress_dialog.h
+++ b/editor/progress_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index 0b748c12b6..9bd8c1e227 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -265,10 +265,25 @@ void ProjectExportDialog::_edit_preset(int p_index) {
export_templates_error->hide();
}
+ export_warning->hide();
export_button->set_disabled(true);
get_ok_button()->set_disabled(true);
-
} else {
+ if (error != String()) {
+ Vector<String> items = error.split("\n", false);
+ error = "";
+ for (int i = 0; i < items.size(); i++) {
+ if (i > 0) {
+ error += "\n";
+ }
+ error += " - " + items[i];
+ }
+ export_warning->set_text(error);
+ export_warning->show();
+ } else {
+ export_warning->hide();
+ }
+
export_error->hide();
export_templates_error->hide();
export_button->set_disabled(false);
@@ -1247,6 +1262,11 @@ ProjectExportDialog::ProjectExportDialog() {
export_error->hide();
export_error->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("error_color"), SNAME("Editor")));
+ export_warning = memnew(Label);
+ main_vb->add_child(export_warning);
+ export_warning->hide();
+ export_warning->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("warning_color"), SNAME("Editor")));
+
export_templates_error = memnew(HBoxContainer);
main_vb->add_child(export_templates_error);
export_templates_error->hide();
diff --git a/editor/project_export.h b/editor/project_export.h
index aeace708b8..af7ec083c4 100644
--- a/editor/project_export.h
+++ b/editor/project_export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -99,6 +99,7 @@ private:
Label *script_key_error;
Label *export_error;
+ Label *export_warning;
HBoxContainer *export_templates_error;
String default_filename;
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index 134f238bb6..08e0f7ae30 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -204,7 +204,7 @@ private:
char fname[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- if (String(fname).ends_with("project.godot")) {
+ if (String::utf8(fname).ends_with("project.godot")) {
break;
}
@@ -524,7 +524,7 @@ private:
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String name = fname;
+ String name = String::utf8(fname);
if (name.ends_with("project.godot")) {
zip_root = name.substr(0, name.rfind("project.godot"));
break;
@@ -544,7 +544,7 @@ private:
char fname[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String path = fname;
+ String path = String::utf8(fname);
if (path.is_empty() || path == zip_root || !zip_root.is_subsequence_of(path)) {
//
@@ -1765,8 +1765,8 @@ void ProjectList::erase_selected_projects(bool p_delete_project_contents) {
void ProjectList::_panel_draw(Node *p_hb) {
Control *hb = Object::cast_to<Control>(p_hb);
- if (is_layout_rtl() && get_v_scrollbar()->is_visible_in_tree()) {
- hb->draw_line(Point2(get_v_scrollbar()->get_minimum_size().x, hb->get_size().y + 1), Point2(hb->get_size().x, hb->get_size().y + 1), get_theme_color(SNAME("guide_color"), SNAME("Tree")));
+ if (is_layout_rtl() && get_v_scroll_bar()->is_visible_in_tree()) {
+ hb->draw_line(Point2(get_v_scroll_bar()->get_minimum_size().x, hb->get_size().y + 1), Point2(hb->get_size().x, hb->get_size().y + 1), get_theme_color(SNAME("guide_color"), SNAME("Tree")));
} else {
hb->draw_line(Point2(0, hb->get_size().y + 1), Point2(hb->get_size().x, hb->get_size().y + 1), get_theme_color(SNAME("guide_color"), SNAME("Tree")));
}
diff --git a/editor/project_manager.h b/editor/project_manager.h
index f45d34d461..f99e879664 100644
--- a/editor/project_manager.h
+++ b/editor/project_manager.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index f6975594cb..b710eb2546 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/project_settings_editor.h b/editor/project_settings_editor.h
index f90db02c46..26af73c54e 100644
--- a/editor/project_settings_editor.h
+++ b/editor/project_settings_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp
index abe1bcf9e5..481ff1a781 100644
--- a/editor/property_editor.cpp
+++ b/editor/property_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -810,7 +810,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
//late init for performance
color_picker = memnew(ColorPicker);
color_picker->set_deferred_mode(true);
- add_child(color_picker);
+ value_vbox->add_child(color_picker);
color_picker->hide();
color_picker->connect("color_changed", callable_mp(this, &CustomPropertyEditor::_color_changed));
diff --git a/editor/property_editor.h b/editor/property_editor.h
index 2565c6ee27..9d88aaf26d 100644
--- a/editor/property_editor.h
+++ b/editor/property_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp
index 838686ead6..3b0cbfdde9 100644
--- a/editor/property_selector.cpp
+++ b/editor/property_selector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/property_selector.h b/editor/property_selector.h
index 37b00e938b..af848b9f18 100644
--- a/editor/property_selector.h
+++ b/editor/property_selector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/quick_open.cpp b/editor/quick_open.cpp
index b4ab6493ef..118c016c6d 100644
--- a/editor/quick_open.cpp
+++ b/editor/quick_open.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/quick_open.h b/editor/quick_open.h
index f1787d522b..00edf46622 100644
--- a/editor/quick_open.h
+++ b/editor/quick_open.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/register_exporters.h b/editor/register_exporters.h
index 5091292b1a..09076af978 100644
--- a/editor/register_exporters.h
+++ b/editor/register_exporters.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp
index 8cf5a26c55..0e34d200f2 100644
--- a/editor/rename_dialog.cpp
+++ b/editor/rename_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/rename_dialog.h b/editor/rename_dialog.h
index f383877eb2..7a882dc693 100644
--- a/editor/rename_dialog.h
+++ b/editor/rename_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/reparent_dialog.cpp b/editor/reparent_dialog.cpp
index f862260212..1a83a61534 100644
--- a/editor/reparent_dialog.cpp
+++ b/editor/reparent_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/reparent_dialog.h b/editor/reparent_dialog.h
index 3fcdda7bed..3d76eb3294 100644
--- a/editor/reparent_dialog.h
+++ b/editor/reparent_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 6ee9cc84e3..7e72777da1 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -726,7 +726,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
dup->set_name(parent->validate_child_name(dup));
- editor_data->get_undo_redo().add_do_method(add_below_node, "add_sibling", dup);
+ editor_data->get_undo_redo().add_do_method(add_below_node, "add_sibling", dup, true);
for (Node *F : owned) {
if (!duplimap.has(F)) {
@@ -942,6 +942,18 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
break;
}
+ if (tocopy->get_owner() != scene) {
+ accept->set_text(TTR("Can't save a branch which is a child of an already instantiated scene.\nTo save this branch into its own scene, open the original scene, right click on this branch, and select \"Save Branch as Scene\"."));
+ accept->popup_centered();
+ break;
+ }
+
+ if (scene->get_scene_inherited_state().is_valid() && scene->get_scene_inherited_state()->find_node_by_path(scene->get_path_to(tocopy)) >= 0) {
+ accept->set_text(TTR("Can't save a branch which is part of an inherited scene.\nTo save this branch into its own scene, open the original scene, right click on this branch, and select \"Save Branch as Scene\"."));
+ accept->popup_centered();
+ break;
+ }
+
new_scene_from_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE);
List<String> extensions;
diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h
index ef89162792..ffaf34cfdc 100644
--- a/editor/scene_tree_dock.h
+++ b/editor/scene_tree_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -31,7 +31,6 @@
#ifndef SCENE_TREE_DOCK_H
#define SCENE_TREE_DOCK_H
-#include "editor/connections_dialog.h"
#include "editor/create_dialog.h"
#include "editor/editor_data.h"
#include "editor/groups_editor.h"
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index 4569841af6..c1ceba27b3 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/scene_tree_editor.h b/editor/scene_tree_editor.h
index b4c40ab17a..7fb1451934 100644
--- a/editor/scene_tree_editor.h
+++ b/editor/scene_tree_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp
index 0e96a1d247..2098fa2c85 100644
--- a/editor/script_create_dialog.cpp
+++ b/editor/script_create_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -33,7 +33,6 @@
#include "core/config/project_settings.h"
#include "core/io/file_access.h"
#include "core/io/resource_saver.h"
-#include "core/object/script_language.h"
#include "core/string/string_builder.h"
#include "editor/create_dialog.h"
#include "editor/editor_node.h"
@@ -45,17 +44,16 @@ void ScriptCreateDialog::_notification(int p_what) {
case NOTIFICATION_ENTER_TREE:
case NOTIFICATION_THEME_CHANGED: {
for (int i = 0; i < ScriptServer::get_language_count(); i++) {
- String lang = ScriptServer::get_language(i)->get_type();
- Ref<Texture2D> lang_icon = get_theme_icon(lang, SNAME("EditorIcons"));
- if (lang_icon.is_valid()) {
- language_menu->set_item_icon(i, lang_icon);
+ Ref<Texture2D> language_icon = get_theme_icon(ScriptServer::get_language(i)->get_type(), SNAME("EditorIcons"));
+ if (language_icon.is_valid()) {
+ language_menu->set_item_icon(i, language_icon);
}
}
- String last_lang = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_language", "");
- if (!last_lang.is_empty()) {
+ String last_language = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_language", "");
+ if (!last_language.is_empty()) {
for (int i = 0; i < language_menu->get_item_count(); i++) {
- if (language_menu->get_item_text(i) == last_lang) {
+ if (language_menu->get_item_text(i) == last_language) {
language_menu->select(i);
current_language = i;
break;
@@ -64,6 +62,10 @@ void ScriptCreateDialog::_notification(int p_what) {
} else {
language_menu->select(default_language);
}
+ if (EditorSettings::get_singleton()->has_meta("script_setup/use_script_templates")) {
+ is_using_templates = bool(EditorSettings::get_singleton()->get_meta("script_setup/use_script_templates"));
+ use_templates->set_pressed(is_using_templates);
+ }
path_button->set_icon(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")));
parent_browse_button->set_icon(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")));
@@ -114,7 +116,7 @@ void ScriptCreateDialog::config(const String &p_base_name, const String &p_base_
built_in_enabled = p_built_in_enabled;
load_enabled = p_load_enabled;
- _lang_changed(current_language);
+ _language_changed(current_language);
_class_name_changed("");
_path_changed(file_path->get_text());
}
@@ -145,8 +147,9 @@ bool ScriptCreateDialog::_validate_class(const String &p_string) {
for (int i = 0; i < p_string.length(); i++) {
if (i == 0) {
+ // Cannot start with a number.
if (p_string[0] >= '0' && p_string[0] <= '9') {
- return false; // no start with number plz
+ return false;
}
}
@@ -170,6 +173,10 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
return TTR("Filename is empty.");
}
+ if (!p.get_file().get_basename().is_valid_filename()) {
+ return TTR("Filename is invalid.");
+ }
+
p = ProjectSettings::get_singleton()->localize_path(p);
if (!p.begins_with("res://")) {
return TTR("Path is not local.");
@@ -178,11 +185,11 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
if (d->change_dir(p.get_base_dir()) != OK) {
memdelete(d);
- return TTR("Invalid base path.");
+ return TTR("Base path is invalid.");
}
memdelete(d);
- /* Does file already exist */
+ // Check if file exists.
DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
if (f->dir_exists(p)) {
memdelete(f);
@@ -193,11 +200,11 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
}
memdelete(f);
- /* Check file extension */
+ // Check file extension.
String extension = p.get_extension();
List<String> extensions;
- // get all possible extensions for script
+ // Get all possible extensions for script.
for (int l = 0; l < language_menu->get_item_count(); l++) {
ScriptServer::get_language(l)->get_recognized_extensions(&extensions);
}
@@ -207,8 +214,6 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
int index = 0;
for (const String &E : extensions) {
if (E.nocasecmp_to(extension) == 0) {
- //FIXME (?) - changing language this way doesn't update controls, needs rework
- //language_menu->select(index); // change Language option by extension
found = true;
if (E == ScriptServer::get_language(language_menu->get_selected())->get_extension()) {
match = true;
@@ -222,16 +227,16 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
return TTR("Invalid extension.");
}
if (!match) {
- return TTR("Wrong extension chosen.");
+ return TTR("Extension doesn't match chosen language.");
}
- /* Let ScriptLanguage do custom validation */
+ // Let ScriptLanguage do custom validation.
String path_error = ScriptServer::get_language(language_menu->get_selected())->validate_path(p);
if (!path_error.is_empty()) {
return path_error;
}
- /* All checks passed */
+ // All checks passed.
return "";
}
@@ -244,40 +249,49 @@ String ScriptCreateDialog::_get_class_name() const {
}
void ScriptCreateDialog::_class_name_changed(const String &p_name) {
- if (_validate_class(class_name->get_text())) {
- is_class_name_valid = true;
- } else {
- is_class_name_valid = false;
- }
+ is_class_name_valid = _validate_class(class_name->get_text());
_update_dialog();
}
void ScriptCreateDialog::_parent_name_changed(const String &p_parent) {
- if (_validate_parent(parent_name->get_text())) {
- is_parent_name_valid = true;
- } else {
- is_parent_name_valid = false;
- }
+ is_parent_name_valid = _validate_parent(parent_name->get_text());
_update_dialog();
}
void ScriptCreateDialog::_template_changed(int p_template) {
- String selected_template = p_template == 0 ? "" : template_menu->get_item_text(p_template);
- EditorSettings::get_singleton()->set_project_metadata("script_setup", "last_selected_template", selected_template);
- if (p_template == 0) {
- //default
- script_template = "";
- return;
- }
- int selected_id = template_menu->get_selected_id();
-
- for (int i = 0; i < template_list.size(); i++) {
- const ScriptTemplateInfo &sinfo = template_list[i];
- if (sinfo.id == selected_id) {
- script_template = sinfo.dir.plus_file(sinfo.name + "." + sinfo.extension);
- break;
+ const ScriptLanguage::ScriptTemplate &sinfo = _get_current_template();
+ // Update last used dictionaries
+ if (is_using_templates && !parent_name->get_text().begins_with("\"res:")) {
+ if (sinfo.origin == ScriptLanguage::TemplateLocation::TEMPLATE_PROJECT) {
+ // Save the last used template for this node into the project dictionary.
+ Dictionary dic_templates_project = EditorSettings::get_singleton()->get_project_metadata("script_setup", "templates_dictionary", Dictionary());
+ dic_templates_project[parent_name->get_text()] = sinfo.get_hash();
+ EditorSettings::get_singleton()->set_project_metadata("script_setup", "templates_dictionary", dic_templates_project);
+ } else {
+ // Save template into to editor dictionary (not a project template).
+ Dictionary dic_templates;
+ if (EditorSettings::get_singleton()->has_meta("script_setup/templates_dictionary")) {
+ dic_templates = (Dictionary)EditorSettings::get_singleton()->get_meta("script_setup/templates_dictionary");
+ }
+ dic_templates[parent_name->get_text()] = sinfo.get_hash();
+ EditorSettings::get_singleton()->set_meta("script_setup/templates_dictionary", dic_templates);
+ // Remove template from project dictionary as we last used an editor level template.
+ Dictionary dic_templates_project = EditorSettings::get_singleton()->get_project_metadata("script_setup", "templates_dictionary", Dictionary());
+ if (dic_templates_project.has(parent_name->get_text())) {
+ dic_templates_project.erase(parent_name->get_text());
+ EditorSettings::get_singleton()->set_project_metadata("script_setup", "templates_dictionary", dic_templates_project);
+ }
}
}
+ // Update template label information.
+ String template_info = String::utf8("• ");
+ template_info += TTR("Template:");
+ template_info += " " + sinfo.name;
+ if (!sinfo.description.is_empty()) {
+ template_info += " - " + sinfo.description;
+ }
+ template_info_label->set_text(template_info);
+ template_info_label->add_theme_color_override("font_color", get_theme_color(SNAME("success_color"), SNAME("Editor")));
}
void ScriptCreateDialog::ok_pressed() {
@@ -287,6 +301,7 @@ void ScriptCreateDialog::ok_pressed() {
_load_exist();
}
+ EditorSettings::get_singleton()->save();
is_new_script_created = true;
_update_dialog();
}
@@ -295,18 +310,10 @@ void ScriptCreateDialog::_create_new() {
String cname_param = _get_class_name();
Ref<Script> scr;
- if (!script_template.is_empty()) {
- scr = ResourceLoader::load(script_template);
- if (scr.is_null()) {
- alert->set_text(vformat(TTR("Error loading template '%s'"), script_template));
- alert->popup_centered();
- return;
- }
- scr = scr->duplicate();
- ScriptServer::get_language(language_menu->get_selected())->make_template(cname_param, parent_name->get_text(), scr);
- } else {
- scr = ScriptServer::get_language(language_menu->get_selected())->get_template(cname_param, parent_name->get_text());
- }
+
+ const ScriptLanguage::ScriptTemplate sinfo = _get_current_template();
+
+ scr = ScriptServer::get_language(language_menu->get_selected())->make_template(sinfo.content, cname_param, parent_name->get_text());
if (has_named_classes) {
String cname = class_name->get_text();
@@ -345,8 +352,20 @@ void ScriptCreateDialog::_load_exist() {
hide();
}
-void ScriptCreateDialog::_lang_changed(int l) {
- ScriptLanguage *language = ScriptServer::get_language(l);
+Vector<String> ScriptCreateDialog::get_hierarchy(String p_object) const {
+ Vector<String> hierarchy;
+ hierarchy.append(p_object);
+
+ String parent_class = ClassDB::get_parent_class(p_object);
+ while (parent_class.is_valid_identifier()) {
+ hierarchy.append(parent_class);
+ parent_class = ClassDB::get_parent_class(parent_class);
+ }
+ return hierarchy;
+}
+
+void ScriptCreateDialog::_language_changed(int l) {
+ language = ScriptServer::get_language(l);
has_named_classes = language->has_named_classes();
can_inherit_from_file = language->can_inherit_from_file();
@@ -364,13 +383,13 @@ void ScriptCreateDialog::_lang_changed(int l) {
}
if (extension.length() == 0) {
- // add extension if none
+ // Add extension if none.
path += selected_ext;
_path_changed(path);
} else {
- // change extension by selected language
+ // Change extension by selected language.
List<String> extensions;
- // get all possible extensions for script
+ // Get all possible extensions for script.
for (int m = 0; m < language_menu->get_item_count(); m++) {
ScriptServer::get_language(m)->get_recognized_extensions(&extensions);
}
@@ -389,123 +408,12 @@ void ScriptCreateDialog::_lang_changed(int l) {
}
file_path->set_text(path);
- bool use_templates = language->is_using_templates();
- template_menu->set_disabled(!use_templates);
- template_menu->clear();
-
- if (use_templates) {
- _update_script_templates(language->get_extension());
-
- String last_lang = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_language", "");
- String last_template = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_template", "");
-
- template_menu->add_item(TTR("Default"));
-
- ScriptTemplateInfo *templates = template_list.ptrw();
-
- Vector<String> origin_names;
- origin_names.push_back(TTR("Project"));
- origin_names.push_back(TTR("Editor"));
- int cur_origin = -1;
-
- // Populate script template items previously sorted and now grouped by origin
- for (int i = 0; i < template_list.size(); i++) {
- if (int(templates[i].origin) != cur_origin) {
- template_menu->add_separator();
-
- String origin_name = origin_names[templates[i].origin];
-
- int last_index = template_menu->get_item_count() - 1;
- template_menu->set_item_text(last_index, origin_name);
-
- cur_origin = templates[i].origin;
- }
- String item_name = templates[i].name.capitalize();
- template_menu->add_item(item_name);
-
- int new_id = template_menu->get_item_count() - 1;
- templates[i].id = new_id;
- }
- // Disable overridden
- for (const KeyValue<String, Vector<int>> &E : template_overrides) {
- const Vector<int> &overrides = E.value;
-
- if (overrides.size() == 1) {
- continue; // doesn't override anything
- }
- const ScriptTemplateInfo &extended = template_list[overrides[0]];
-
- StringBuilder override_info;
- override_info += TTR("Overrides");
- override_info += ": ";
-
- for (int i = 1; i < overrides.size(); i++) {
- const ScriptTemplateInfo &overridden = template_list[overrides[i]];
-
- int disable_index = template_menu->get_item_index(overridden.id);
- template_menu->set_item_disabled(disable_index, true);
-
- override_info += origin_names[overridden.origin];
- if (i < overrides.size() - 1) {
- override_info += ", ";
- }
- }
- template_menu->set_item_icon(extended.id, get_theme_icon(SNAME("Override"), SNAME("EditorIcons")));
- template_menu->get_popup()->set_item_tooltip(extended.id, override_info.as_string());
- }
- // Reselect last selected template
- for (int i = 0; i < template_menu->get_item_count(); i++) {
- const String &ti = template_menu->get_item_text(i);
- if (language_menu->get_item_text(language_menu->get_selected()) == last_lang && last_template == ti) {
- template_menu->select(i);
- break;
- }
- }
- } else {
- template_menu->add_item(TTR("N/A"));
- script_template = "";
- }
-
- _template_changed(template_menu->get_selected());
EditorSettings::get_singleton()->set_project_metadata("script_setup", "last_selected_language", language_menu->get_item_text(language_menu->get_selected()));
_parent_name_changed(parent_name->get_text());
_update_dialog();
}
-void ScriptCreateDialog::_update_script_templates(const String &p_extension) {
- template_list.clear();
- template_overrides.clear();
-
- Vector<String> dirs;
-
- // Ordered from local to global for correct override mechanism
- dirs.push_back(EditorSettings::get_singleton()->get_project_script_templates_dir());
- dirs.push_back(EditorSettings::get_singleton()->get_script_templates_dir());
-
- for (int i = 0; i < dirs.size(); i++) {
- Vector<String> list = EditorSettings::get_singleton()->get_script_templates(p_extension, dirs[i]);
-
- for (int j = 0; j < list.size(); j++) {
- ScriptTemplateInfo sinfo;
- sinfo.origin = ScriptOrigin(i);
- sinfo.dir = dirs[i];
- sinfo.name = list[j];
- sinfo.extension = p_extension;
- template_list.push_back(sinfo);
-
- if (!template_overrides.has(sinfo.name)) {
- Vector<int> overrides;
- overrides.push_back(template_list.size() - 1); // first one
- template_overrides.insert(sinfo.name, overrides);
- } else {
- Vector<int> &overrides = template_overrides[sinfo.name];
- overrides.push_back(template_list.size() - 1);
- }
- }
- }
-}
-
void ScriptCreateDialog::_built_in_pressed() {
if (internal->is_pressed()) {
is_built_in = true;
@@ -517,6 +425,12 @@ void ScriptCreateDialog::_built_in_pressed() {
_update_dialog();
}
+void ScriptCreateDialog::_use_template_pressed() {
+ is_using_templates = use_templates->is_pressed();
+ EditorSettings::get_singleton()->set_meta("script_setup/use_script_templates", is_using_templates);
+ _update_dialog();
+}
+
void ScriptCreateDialog::_browse_path(bool browse_parent, bool p_save) {
is_browsing_parent = browse_parent;
@@ -545,16 +459,16 @@ void ScriptCreateDialog::_browse_path(bool browse_parent, bool p_save) {
}
void ScriptCreateDialog::_file_selected(const String &p_file) {
- String p = ProjectSettings::get_singleton()->localize_path(p_file);
+ String path = ProjectSettings::get_singleton()->localize_path(p_file);
if (is_browsing_parent) {
- parent_name->set_text("\"" + p + "\"");
+ parent_name->set_text("\"" + path + "\"");
_parent_name_changed(parent_name->get_text());
} else {
- file_path->set_text(p);
- _path_changed(p);
+ file_path->set_text(path);
+ _path_changed(path);
- String filename = p.get_file().get_basename();
- int select_start = p.rfind(filename);
+ String filename = path.get_file().get_basename();
+ int select_start = path.rfind(filename);
file_path->select(select_start, select_start + filename.length());
file_path->set_caret_column(select_start + filename.length());
file_path->grab_focus();
@@ -588,7 +502,7 @@ void ScriptCreateDialog::_path_changed(const String &p_path) {
return;
}
- /* Does file already exist */
+ // Check if file exists.
DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
String p = ProjectSettings::get_singleton()->localize_path(p_path.strip_edges());
if (f->file_exists(p)) {
@@ -623,9 +537,98 @@ void ScriptCreateDialog::_msg_path_valid(bool valid, const String &p_msg) {
}
}
-void ScriptCreateDialog::_update_dialog() {
- /* "Add Script Dialog" GUI logic and script checks. */
+void ScriptCreateDialog::_update_template_menu() {
+ bool is_language_using_templates = language->is_using_templates();
+ template_menu->set_disabled(false);
+ template_menu->clear();
+ template_list.clear();
+ if (is_language_using_templates) {
+ // Get the latest templates used for each type of node from project settings then global settings.
+ Dictionary last_local_templates = EditorSettings::get_singleton()->get_project_metadata("script_setup", "templates_dictionary", Dictionary());
+ Dictionary last_global_templates;
+ if (EditorSettings::get_singleton()->has_meta("script_setup/templates_dictionary")) {
+ last_global_templates = (Dictionary)EditorSettings::get_singleton()->get_meta("script_setup/templates_dictionary");
+ }
+ String inherits_base_type = parent_name->get_text();
+
+ // If it inherits from a script, select Object instead.
+ if (inherits_base_type[0] == '"') {
+ inherits_base_type = "Object";
+ }
+
+ // Get all ancestor node for selected base node.
+ // There templates will also fit the base node.
+ Vector<String> hierarchy = get_hierarchy(inherits_base_type);
+ int last_used_template = -1;
+ int preselected_template = -1;
+ int previous_ancestor_level = -1;
+
+ // Templates can be stored in tree different locations.
+ Vector<ScriptLanguage::TemplateLocation> template_locations;
+ template_locations.append(ScriptLanguage::TEMPLATE_PROJECT);
+ template_locations.append(ScriptLanguage::TEMPLATE_EDITOR);
+ template_locations.append(ScriptLanguage::TEMPLATE_BUILT_IN);
+
+ for (const ScriptLanguage::TemplateLocation &template_location : template_locations) {
+ String display_name = _get_script_origin_label(template_location);
+ bool separator = false;
+ int ancestor_level = 0;
+ for (const String &current_node : hierarchy) {
+ Vector<ScriptLanguage::ScriptTemplate> templates_found;
+ if (template_location == ScriptLanguage::TEMPLATE_BUILT_IN) {
+ templates_found = language->get_built_in_templates(current_node);
+ } else {
+ String template_directory;
+ if (template_location == ScriptLanguage::TEMPLATE_PROJECT) {
+ template_directory = EditorSettings::get_singleton()->get_project_script_templates_dir();
+ } else {
+ template_directory = EditorSettings::get_singleton()->get_script_templates_dir();
+ }
+ templates_found = _get_user_templates(language, current_node, template_directory, template_location);
+ }
+ if (!templates_found.is_empty()) {
+ if (!separator) {
+ template_menu->add_separator();
+ template_menu->set_item_text(template_menu->get_item_count() - 1, display_name);
+ separator = true;
+ }
+ for (ScriptLanguage::ScriptTemplate &t : templates_found) {
+ template_menu->add_item(t.inherit + ": " + t.name);
+ int id = template_menu->get_item_count() - 1;
+ // Check if this template should be preselected if node isn't in the last used dictionary.
+ if (ancestor_level < previous_ancestor_level || previous_ancestor_level == -1) {
+ previous_ancestor_level = ancestor_level;
+ preselected_template = id;
+ }
+ // Check for last used template for this node in project settings then in global settings.
+ if (last_local_templates.has(parent_name->get_text()) && t.get_hash() == String(last_local_templates[parent_name->get_text()])) {
+ last_used_template = id;
+ } else if (last_used_template == -1 && last_global_templates.has(parent_name->get_text()) && t.get_hash() == String(last_global_templates[parent_name->get_text()])) {
+ last_used_template = id;
+ }
+ t.id = id;
+ template_list.push_back(t);
+ String icon = has_theme_icon(t.inherit, SNAME("EditorIcons")) ? t.inherit : "Object";
+ template_menu->set_item_icon(id, get_theme_icon(icon, SNAME("EditorIcons")));
+ }
+ }
+ ancestor_level++;
+ }
+ }
+
+ if (last_used_template != -1) {
+ template_menu->select(last_used_template);
+ } else if (preselected_template != -1) {
+ template_menu->select(preselected_template);
+ }
+ }
+ _template_changed(template_menu->get_selected());
+}
+
+void ScriptCreateDialog::_update_dialog() {
+ // "Add Script Dialog" GUI logic and script checks.
+ _update_template_menu();
bool script_ok = true;
// Is script path/name valid (order from top to bottom)?
@@ -697,41 +700,51 @@ void ScriptCreateDialog::_update_dialog() {
// This warning isn't relevant if the script is built-in.
script_name_warning_label->set_visible(!is_built_in && _get_class_name() == parent_name->get_text());
- if (is_built_in) {
- get_ok_button()->set_text(TTR("Create"));
- parent_name->set_editable(true);
- parent_search_button->set_disabled(false);
- parent_browse_button->set_disabled(!can_inherit_from_file);
- _msg_path_valid(true, TTR("Built-in script (into scene file)."));
- } else if (is_new_script_created) {
- // New script created.
-
- get_ok_button()->set_text(TTR("Create"));
- parent_name->set_editable(true);
- parent_search_button->set_disabled(false);
- parent_browse_button->set_disabled(!can_inherit_from_file);
- if (is_path_valid) {
+ bool is_new_file = is_built_in || is_new_script_created;
+
+ parent_name->set_editable(is_new_file);
+ parent_search_button->set_disabled(!is_new_file);
+ parent_browse_button->set_disabled(!is_new_file || !can_inherit_from_file);
+ template_inactive_message = "";
+ String button_text = is_new_file ? TTR("Create") : TTR("Load");
+ get_ok_button()->set_text(button_text);
+
+ if (is_new_file) {
+ if (is_built_in) {
+ _msg_path_valid(true, TTR("Built-in script (into scene file)."));
+ }
+ if (is_new_script_created && is_path_valid) {
_msg_path_valid(true, TTR("Will create a new script file."));
}
- } else if (load_enabled) {
- // Script loaded.
-
- get_ok_button()->set_text(TTR("Load"));
- parent_name->set_editable(false);
- parent_search_button->set_disabled(true);
- parent_browse_button->set_disabled(true);
- if (is_path_valid) {
- _msg_path_valid(true, TTR("Will load an existing script file."));
+ } else {
+ if (load_enabled) {
+ template_inactive_message = TTR("Using existing script file.");
+ if (is_path_valid) {
+ _msg_path_valid(true, TTR("Will load an existing script file."));
+ }
+ } else {
+ template_inactive_message = TTR("Using existing script file.");
+ _msg_path_valid(false, TTR("Script file already exists."));
+ script_ok = false;
+ }
+ }
+
+ // Show templates list if needed.
+ if (is_using_templates) {
+ // Check if at least one suitable template has been found.
+ if (template_menu->get_item_count() == 0 && template_inactive_message.is_empty()) {
+ template_inactive_message = TTR("No suitable template.");
}
} else {
- get_ok_button()->set_text(TTR("Create"));
- parent_name->set_editable(true);
- parent_search_button->set_disabled(false);
- parent_browse_button->set_disabled(!can_inherit_from_file);
- _msg_path_valid(false, TTR("Script file already exists."));
+ template_inactive_message = TTR("Empty");
+ }
- script_ok = false;
+ if (!template_inactive_message.is_empty()) {
+ template_menu->set_disabled(true);
+ template_menu->clear();
+ template_menu->add_item(template_inactive_message);
}
+ template_info_label->set_visible(!template_menu->is_disabled());
get_ok_button()->set_disabled(!script_ok);
@@ -745,6 +758,122 @@ void ScriptCreateDialog::_update_dialog() {
}
}
+ScriptLanguage::ScriptTemplate ScriptCreateDialog::_get_current_template() const {
+ int selected_id = template_menu->get_selected_id();
+ for (const ScriptLanguage::ScriptTemplate &t : template_list) {
+ if (is_using_templates) {
+ if (t.id == selected_id) {
+ return t;
+ }
+ } else {
+ // Using empty built-in template if templates are disabled.
+ if (t.origin == ScriptLanguage::TemplateLocation::TEMPLATE_BUILT_IN && t.name == "Empty") {
+ return t;
+ }
+ }
+ }
+ return ScriptLanguage::ScriptTemplate();
+}
+
+Vector<ScriptLanguage::ScriptTemplate> ScriptCreateDialog::_get_user_templates(const ScriptLanguage *language, const StringName &p_object, const String &p_dir, const ScriptLanguage::TemplateLocation &p_origin) const {
+ Vector<ScriptLanguage::ScriptTemplate> user_templates;
+ String extension = language->get_extension();
+
+ String dir_path = p_dir.plus_file(p_object);
+
+ DirAccess *d = DirAccess::open(dir_path);
+ if (d) {
+ d->list_dir_begin();
+ String file = d->get_next();
+ while (file != String()) {
+ if (file.get_extension() == extension) {
+ user_templates.append(_parse_template(language, dir_path, file, p_origin, p_object));
+ }
+ file = d->get_next();
+ }
+ d->list_dir_end();
+ memdelete(d);
+ }
+ return user_templates;
+}
+
+ScriptLanguage::ScriptTemplate ScriptCreateDialog::_parse_template(const ScriptLanguage *language, const String &p_path, const String &p_filename, const ScriptLanguage::TemplateLocation &p_origin, const String &p_inherits) const {
+ ScriptLanguage::ScriptTemplate script_template = ScriptLanguage::ScriptTemplate();
+ script_template.origin = p_origin;
+ script_template.inherit = p_inherits;
+ String space_indent = " ";
+ // Get meta delimiter
+ String meta_delimiter = String();
+ List<String> comment_delimiters;
+ language->get_comment_delimiters(&comment_delimiters);
+ for (const String &script_delimiter : comment_delimiters) {
+ if (script_delimiter.find(" ") == -1) {
+ meta_delimiter = script_delimiter;
+ break;
+ }
+ }
+ String meta_prefix = meta_delimiter + " meta-";
+
+ // Parse file for meta-information and script content
+ Error err;
+ FileAccess *file = FileAccess::open(p_path.plus_file(p_filename), FileAccess::READ, &err);
+ if (!err) {
+ while (!file->eof_reached()) {
+ String line = file->get_line();
+ if (line.begins_with(meta_prefix)) {
+ // Store meta information
+ line = line.substr(meta_prefix.length(), -1);
+ if (line.begins_with("name")) {
+ script_template.name = line.substr(5, -1).strip_edges();
+ }
+ if (line.begins_with("description")) {
+ script_template.description = line.substr(12, -1).strip_edges();
+ }
+ if (line.begins_with("space-indent")) {
+ String indent_value = line.substr(17, -1).strip_edges();
+ if (indent_value.is_valid_int()) {
+ space_indent = "";
+ for (int i = 0; i < indent_value.to_int(); i++) {
+ space_indent += " ";
+ }
+ } else {
+ WARN_PRINT(vformat("Template meta-use_space_indent need to be a valid integer value. Found %s.", indent_value));
+ }
+ }
+ } else {
+ // Store script
+ if (space_indent != "") {
+ line = line.replace(space_indent, "_TS_");
+ }
+ script_template.content += line.replace("\t", "_TS_") + "\n";
+ }
+ }
+ file->close();
+ memdelete(file);
+ }
+
+ script_template.content = script_template.content.lstrip("\n");
+
+ // Get name from file name if no name in meta information
+ if (script_template.name == String()) {
+ script_template.name = p_filename.get_basename().replace("_", " ").capitalize();
+ }
+
+ return script_template;
+}
+
+String ScriptCreateDialog::_get_script_origin_label(const ScriptLanguage::TemplateLocation &p_origin) const {
+ switch (p_origin) {
+ case ScriptLanguage::TEMPLATE_BUILT_IN:
+ return TTR("Built-in");
+ case ScriptLanguage::TEMPLATE_EDITOR:
+ return TTR("Editor");
+ case ScriptLanguage::TEMPLATE_PROJECT:
+ return TTR("Project");
+ }
+ return "";
+}
+
void ScriptCreateDialog::_bind_methods() {
ClassDB::bind_method(D_METHOD("config", "inherits", "path", "built_in_enabled", "load_enabled"), &ScriptCreateDialog::config, DEFVAL(true), DEFVAL(true));
@@ -757,7 +886,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
GridContainer *gc = memnew(GridContainer);
gc->set_columns(2);
- /* Error Messages Field */
+ /* Information Messages Field */
VBoxContainer *vb = memnew(VBoxContainer);
@@ -782,6 +911,10 @@ ScriptCreateDialog::ScriptCreateDialog() {
script_name_warning_label->set_autowrap_mode(Label::AUTOWRAP_WORD_SMART);
script_name_warning_label->hide();
+ template_info_label = memnew(Label);
+ vb->add_child(template_info_label);
+ template_info_label->set_autowrap_mode(Label::AUTOWRAP_WORD_SMART);
+
status_panel = memnew(PanelContainer);
status_panel->set_h_size_flags(Control::SIZE_FILL);
status_panel->set_v_size_flags(Control::SIZE_EXPAND_FILL);
@@ -801,7 +934,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
/* Language */
language_menu = memnew(OptionButton);
- language_menu->set_custom_minimum_size(Size2(250, 0) * EDSCALE);
+ language_menu->set_custom_minimum_size(Size2(350, 0) * EDSCALE);
language_menu->set_h_size_flags(Control::SIZE_EXPAND_FILL);
gc->add_child(memnew(Label(TTR("Language:"))));
gc->add_child(language_menu);
@@ -819,7 +952,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
}
current_language = default_language;
- language_menu->connect("item_selected", callable_mp(this, &ScriptCreateDialog::_lang_changed));
+ language_menu->connect("item_selected", callable_mp(this, &ScriptCreateDialog::_language_changed));
/* Inherits */
@@ -851,10 +984,24 @@ ScriptCreateDialog::ScriptCreateDialog() {
/* Templates */
- template_menu = memnew(OptionButton);
+ is_using_templates = true;
gc->add_child(memnew(Label(TTR("Template:"))));
- gc->add_child(template_menu);
+ HBoxContainer *template_hb = memnew(HBoxContainer);
+ template_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+
+ use_templates = memnew(CheckBox);
+ use_templates->set_pressed(is_using_templates);
+ use_templates->connect("pressed", callable_mp(this, &ScriptCreateDialog::_use_template_pressed));
+ template_hb->add_child(use_templates);
+
+ template_inactive_message = "";
+
+ template_menu = memnew(OptionButton);
+ template_menu->set_h_size_flags(Control::SIZE_EXPAND_FILL);
template_menu->connect("item_selected", callable_mp(this, &ScriptCreateDialog::_template_changed));
+ template_hb->add_child(template_menu);
+
+ gc->add_child(template_hb);
/* Built-in Script */
diff --git a/editor/script_create_dialog.h b/editor/script_create_dialog.h
index dba798eea7..67d30e21fb 100644
--- a/editor/script_create_dialog.h
+++ b/editor/script_create_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
@@ -31,6 +31,7 @@
#ifndef SCRIPT_CREATE_DIALOG_H
#define SCRIPT_CREATE_DIALOG_H
+#include "core/object/script_language.h"
#include "editor/editor_file_dialog.h"
#include "editor/editor_settings.h"
#include "scene/gui/check_box.h"
@@ -50,6 +51,7 @@ class ScriptCreateDialog : public ConfirmationDialog {
Label *path_error_label;
Label *builtin_warning_label;
Label *script_name_warning_label;
+ Label *template_info_label;
PanelContainer *status_panel;
LineEdit *parent_name;
Button *parent_browse_button;
@@ -61,12 +63,14 @@ class ScriptCreateDialog : public ConfirmationDialog {
Button *path_button;
EditorFileDialog *file_browse;
CheckBox *internal;
+ CheckBox *use_templates;
VBoxContainer *path_vb;
AcceptDialog *alert;
CreateDialog *select_class;
bool path_valid;
bool create_new;
bool is_browsing_parent;
+ String template_inactive_message;
String initial_bp;
bool is_new_script_created;
bool is_path_valid;
@@ -76,6 +80,7 @@ class ScriptCreateDialog : public ConfirmationDialog {
bool is_parent_name_valid;
bool is_class_name_valid;
bool is_built_in;
+ bool is_using_templates;
bool built_in_enabled;
bool load_enabled;
int current_language;
@@ -85,23 +90,8 @@ class ScriptCreateDialog : public ConfirmationDialog {
Control *path_controls[2];
Control *name_controls[2];
- enum ScriptOrigin {
- SCRIPT_ORIGIN_PROJECT,
- SCRIPT_ORIGIN_EDITOR,
- };
- struct ScriptTemplateInfo {
- int id = 0;
- ScriptOrigin origin = ScriptOrigin::SCRIPT_ORIGIN_EDITOR;
- String dir;
- String name;
- String extension;
- };
-
- String script_template;
- Vector<ScriptTemplateInfo> template_list;
- Map<String, Vector<int>> template_overrides; // name : indices
-
- void _update_script_templates(const String &p_extension);
+ Vector<ScriptLanguage::ScriptTemplate> template_list;
+ ScriptLanguage *language;
String base_type;
@@ -109,8 +99,9 @@ class ScriptCreateDialog : public ConfirmationDialog {
bool _can_be_built_in();
void _path_changed(const String &p_path = String());
void _path_submitted(const String &p_path = String());
- void _lang_changed(int l = 0);
+ void _language_changed(int l = 0);
void _built_in_pressed();
+ void _use_template_pressed();
bool _validate_parent(const String &p_string);
bool _validate_class(const String &p_string);
String _validate_path(const String &p_path, bool p_file_must_exist);
@@ -125,9 +116,15 @@ class ScriptCreateDialog : public ConfirmationDialog {
virtual void ok_pressed() override;
void _create_new();
void _load_exist();
+ Vector<String> get_hierarchy(String p_object) const;
void _msg_script_valid(bool valid, const String &p_msg = String());
void _msg_path_valid(bool valid, const String &p_msg = String());
+ void _update_template_menu();
void _update_dialog();
+ ScriptLanguage::ScriptTemplate _get_current_template() const;
+ Vector<ScriptLanguage::ScriptTemplate> _get_user_templates(const ScriptLanguage *language, const StringName &p_object, const String &p_dir, const ScriptLanguage::TemplateLocation &p_origin) const;
+ ScriptLanguage::ScriptTemplate _parse_template(const ScriptLanguage *language, const String &p_path, const String &p_filename, const ScriptLanguage::TemplateLocation &p_origin, const String &p_inherits) const;
+ String _get_script_origin_label(const ScriptLanguage::TemplateLocation &p_origin) const;
protected:
void _notification(int p_what);
diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp
index 8e12cb76ef..71edeefd10 100644
--- a/editor/settings_config_dialog.cpp
+++ b/editor/settings_config_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/settings_config_dialog.h b/editor/settings_config_dialog.h
index 7317a014b2..c3dfd736d5 100644
--- a/editor/settings_config_dialog.h
+++ b/editor/settings_config_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/shader_create_dialog.cpp b/editor/shader_create_dialog.cpp
index 302f7f78c5..239860c9ab 100644
--- a/editor/shader_create_dialog.cpp
+++ b/editor/shader_create_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/shader_create_dialog.h b/editor/shader_create_dialog.h
index cd20897ddb..be0fef211c 100644
--- a/editor/shader_create_dialog.h
+++ b/editor/shader_create_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/shader_globals_editor.cpp b/editor/shader_globals_editor.cpp
index 31c1dc85a8..f97ffcae65 100644
--- a/editor/shader_globals_editor.cpp
+++ b/editor/shader_globals_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/shader_globals_editor.h b/editor/shader_globals_editor.h
index 84ab6ac063..efec9f4219 100644
--- a/editor/shader_globals_editor.h
+++ b/editor/shader_globals_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 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 */
diff --git a/editor/template_builders.py b/editor/template_builders.py
new file mode 100644
index 0000000000..efed567d46
--- /dev/null
+++ b/editor/template_builders.py
@@ -0,0 +1,95 @@
+"""Functions used to generate source files during build time
+All such functions are invoked in a subprocess on Windows to prevent build flakiness.
+"""
+
+import os
+from io import StringIO
+from platform_methods import subprocess_main
+
+
+def parse_template(inherits, source, delimiter):
+ script_template = {
+ "inherits": inherits,
+ "name": "",
+ "description": "",
+ "version": "",
+ "script": "",
+ "space-indent": "4",
+ }
+ meta_prefix = delimiter + " meta-"
+ meta = ["name", "description", "version", "space-indent"]
+
+ with open(source) as f:
+ lines = f.readlines()
+ for line in lines:
+ if line.startswith(meta_prefix):
+ line = line[len(meta_prefix) :]
+ for m in meta:
+ if line.startswith(m):
+ strip_lenght = len(m) + 1
+ script_template[m] = line[strip_lenght:].strip()
+ else:
+ script_template["script"] += line
+ if script_template["space-indent"] != "":
+ indent = " " * int(script_template["space-indent"])
+ script_template["script"] = script_template["script"].replace(indent, "_TS_")
+ if script_template["name"] == "":
+ script_template["name"] = os.path.splitext(os.path.basename(source))[0].replace("_", " ").title()
+ script_template["script"] = (
+ script_template["script"].replace('"', '\\"').lstrip().replace("\n", "\\n").replace("\t", "_TS_")
+ )
+ return (
+ '{ String("'
+ + script_template["inherits"]
+ + '"), String("'
+ + script_template["name"]
+ + '"), String("'
+ + script_template["description"]
+ + '"), String("'
+ + script_template["script"]
+ + '")'
+ + " },\n"
+ )
+
+
+def make_templates(target, source, env):
+ dst = target[0]
+ s = StringIO()
+ s.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n\n")
+ s.write("#ifndef _CODE_TEMPLATES_H\n")
+ s.write("#define _CODE_TEMPLATES_H\n\n")
+ s.write('#include "core/object/object.h"\n')
+ s.write('#include "core/object/script_language.h"\n')
+
+ delimiter = "#" # GDScript single line comment delimiter by default.
+ if source:
+ ext = os.path.splitext(source[0])[1]
+ if ext == ".cs":
+ delimiter = "//"
+
+ parsed_template_string = ""
+ number_of_templates = 0
+
+ for filepath in source:
+ node_name = os.path.basename(os.path.dirname(filepath))
+ parsed_template = parse_template(node_name, filepath, delimiter)
+ parsed_template_string += "\t" + parsed_template
+ number_of_templates += 1
+
+ s.write("\nstatic const int TEMPLATES_ARRAY_SIZE = " + str(number_of_templates) + ";\n")
+ s.write("\nstatic const struct ScriptLanguage::ScriptTemplate TEMPLATES[" + str(number_of_templates) + "] = {\n")
+
+ s.write(parsed_template_string)
+
+ s.write("};\n")
+
+ s.write("\n#endif\n")
+
+ with open(dst, "w") as f:
+ f.write(s.getvalue())
+
+ s.close()
+
+
+if __name__ == "__main__":
+ subprocess_main(globals())
diff --git a/editor/translations/af.po b/editor/translations/af.po
index b2224828e7..fb80e360f9 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -1,6 +1,6 @@
# Afrikaans translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Ray West <the.raxar@gmail.com>, 2017.
# Julius Stopforth <jjstopforth@gmail.com>, 2018.
@@ -331,6 +331,10 @@ msgid "Duplicate Key(s)"
msgstr "Anim Dupliseer Sleutels"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Anim Skrap Sleutels"
@@ -505,6 +509,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skaal Sleutels"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1524,6 +1533,10 @@ msgid "Invalid name."
msgstr "Ongeldige naam."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Geldige karakters:"
@@ -1634,7 +1647,9 @@ msgstr "Toneel word opgedateer..."
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1656,6 +1671,7 @@ msgstr "Skep Vouer"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Naam:"
@@ -2161,7 +2177,7 @@ msgid "Properties"
msgstr "Eienskappe"
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2318,6 +2334,19 @@ msgstr "Eienskappe"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2327,6 +2356,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Eienskappe"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Eienskappe"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Eienskappe"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Afvoer:"
@@ -3079,6 +3131,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4183,6 +4249,11 @@ msgstr "Vind"
msgid "Find:"
msgstr "Vind"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Vervang"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4207,6 +4278,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Vervang Alles"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4219,7 +4295,7 @@ msgstr "Vervang"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Vervang Alles"
#: editor/find_in_files.cpp
@@ -4447,6 +4523,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5945,6 +6027,11 @@ msgstr "Skrap gekose lêers?"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Skrap gekose lêers?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Verwyder geselekteerde baan."
@@ -5974,6 +6061,10 @@ msgid "Scale Mode"
msgstr "Wissel Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6069,20 +6160,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Skrap"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Dupliseer Seleksie"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Verwyder Seleksie"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Verwyder Seleksie"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "EnkelHouer"
@@ -7752,6 +7867,11 @@ msgid "Find in Files..."
msgstr "Vind"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Vind"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8283,6 +8403,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Laai Verstek"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9049,6 +9182,28 @@ msgstr "Lede"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Anim Voeg Baan By"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Eienskappe"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Baan Hernoem"
@@ -9073,20 +9228,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Anim Voeg Baan By"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nodus Naam:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Laai Verstek"
@@ -9103,6 +9244,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Lede"
@@ -11542,11 +11687,6 @@ msgid "Batch Rename"
msgstr "Pas Letterkas"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Vervang"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11829,6 +11969,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12795,63 +12949,68 @@ msgstr "Alle Seleksie"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13834,6 +13993,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14040,16 +14209,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14448,10 +14623,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 47d1750765..406f882df8 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -1,6 +1,6 @@
# Arabic translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Adel <dragonhunter250@gmail.com>, 2018.
# athomield <athomield@hotmail.com>, 2017.
@@ -51,7 +51,7 @@
# Kareem Abduljaleel <karemjaleel34@gmail.com>, 2021.
# ILG - Game <moegypt277@gmail.com>, 2021.
# Hatim Jamal <hatimjamal8@gmail.com>, 2021.
-# HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>, 2021.
+# HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>, 2021, 2022.
# abubakrAlsaab <madeinsudan19@gmail.com>, 2021.
# Hafid Talbi <atalbiie@gmail.com>, 2021.
# Hareth Mohammed <harethpy@gmail.com>, 2021.
@@ -62,8 +62,8 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-14 15:28+0000\n"
-"Last-Translator: Spirit <i8bou3@gmail.com>\n"
+"PO-Revision-Date: 2022-01-03 03:54+0000\n"
+"Last-Translator: HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot/ar/>\n"
"Language: ar\n"
@@ -72,7 +72,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -374,6 +374,11 @@ msgid "Duplicate Key(s)"
msgstr "مفتاح (مفاتيح) المكررة"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "إضافة %d إطار(ات)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "مفتاح الحذف()"
@@ -540,6 +545,11 @@ msgid ""
msgstr "هذا الخيار لا يعمل لتعديل منحنى بيزر (Bezier), لأنه فقط مقطع واحد."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "مفتاح تكبير حركة"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1517,6 +1527,10 @@ msgid "Invalid name."
msgstr "اسم غير صالح."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "الأحرف الصالحة:"
@@ -1621,7 +1635,9 @@ msgstr "يُحدث المشهد..."
msgid "[empty]"
msgstr "[فارغ]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[غير محفوظ]"
@@ -1642,6 +1658,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "الأسم:"
@@ -2133,7 +2150,8 @@ msgid "Properties"
msgstr "خاصيات"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "يتجاوز:"
#: editor/editor_help.cpp
@@ -2142,7 +2160,7 @@ msgstr "الافتراضي:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "الطُرق"
+msgstr "طرق"
#: editor/editor_help.cpp
msgid "Theme Properties"
@@ -2155,7 +2173,7 @@ msgstr "اللون"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constants"
-msgstr "الثوابت"
+msgstr "ثوابت"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -2277,6 +2295,20 @@ msgstr "خاصية الموضوع (Theme)"
msgid "Property:"
msgstr "خاصية:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(القيمة)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2286,6 +2318,29 @@ msgstr "تحديد %s"
msgid "Set Multiple:"
msgstr "تحديد التكرار:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "خاصيات"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "خاصيات"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "نسخ مسار النص البرمجي"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "المُخرجات:"
@@ -3096,6 +3151,20 @@ msgstr ""
"المشروع المشغل."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "مزامنة تغييرات المشهد"
@@ -4233,6 +4302,10 @@ msgstr "إبحث في الملفات"
msgid "Find:"
msgstr "إيجاد:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "إستبدال:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "مجلد:"
@@ -4258,6 +4331,11 @@ msgstr "ابحث..."
msgid "Replace..."
msgstr "استبدال..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "إستبدال الكل"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "إيجاد: "
@@ -4267,8 +4345,9 @@ msgid "Replace: "
msgstr "إستبدال: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "إستبدال الكل (بلا تراجع)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "إستبدال الكل"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4481,6 +4560,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "تحذير: هناك مُلحقات تستخدم هذا المورد، ربما سيتوقف تحميلها بشكل صحيح."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "فشل تحميل المورد."
@@ -5959,6 +6044,11 @@ msgstr "Alt+سحب: تحريك"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+سحب: تحريك"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "ازالة الكائن المحدد او الإنتقال المحدد."
@@ -5990,6 +6080,10 @@ msgid "Scale Mode"
msgstr "وضع التحجيم"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6086,20 +6180,44 @@ msgstr "قفل العنصر المحدد في هذا المكان (لا يمكن
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "حُدد إلغاء القفل"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "تأكد من أن الطفل للعنصر غير قابل للتحديد."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "حُدد التجميع"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "إرجاع مقدرة تحديد الطفل للعنصر."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "حُدد إلغاء التجميع"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "إعدادات الهكيل العظمي"
@@ -7761,6 +7879,11 @@ msgid "Find in Files..."
msgstr "جِد في الملفات..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "استبدال..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "مساعدة سياقية"
@@ -8312,6 +8435,19 @@ msgid "Toggle Freelook"
msgstr "إلغاء/تفعيل وضع الرؤية الحُرة"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "إعادة التعيين إلى الافتراضي"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "التحوّل"
@@ -9094,6 +9230,29 @@ msgid "Another Theme"
msgstr "استيراد الموضوع Theme"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "إضافة نوع"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "الملفات المتوافرة:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "اسم الملف فارغ."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "هل أنت واثق من فتح أكثر من مشروع؟"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Confirm Item Rename"
msgstr "تغيير إسم مسار التحريك"
@@ -9120,19 +9279,6 @@ msgstr ""
"المشابهة في جميع صناديق المظهر من هذا النوع."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "إضافة نوع"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "إضافة نوع للعنصر"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "نوع العُقدة"
-
-#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "تحميل الإفتراضي"
@@ -9151,6 +9297,10 @@ msgid "Override all default type items."
msgstr "تجاوز جميع أنواع العناصر الافتراضية."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "إضافة نوع للعنصر"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "الموضوع"
@@ -11681,10 +11831,6 @@ msgid "Batch Rename"
msgstr "إعادة تسمية الدفعة"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "إستبدال:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "بادئة:"
@@ -11971,6 +12117,20 @@ msgstr ""
"مشهد جديد موروث… بدلاً عن ذلك."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "احفظ المشهد الجديد ك..."
@@ -12944,63 +13104,69 @@ msgstr "تعبئة المُحدد"
msgid "End of inner exception stack trace"
msgstr "نهاية تتبع مكدس الاستثناء الداخلي"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"يجب تعيين مصدر مجسم-التنقل (NavigationMesh) أو إنشاؤه حتى تعمل هذه العقدة."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "اطبخ شبكة ملاحة"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "إخلاء ميش المحاور."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "يُجهز الإعدادات..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "يحسب حجم الشبكة..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "إنشاء مجال الإرتفاع..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "تعليم مثلثات التحرك..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "يبني مجال الإرتفاع المدمج..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "تقويض منطقة السير..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "تجزئة..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "إنشاء المحيط..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "إنشاء نموذج الميش..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "يحول إلي ميش التنقل المحلي..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "منشئ تثبيت ميش التنقل:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "توزيع الأشكال الهندسية..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "تم!"
@@ -14065,6 +14231,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "المُضلع المُغلق لهذا الغَلق فارغ. الرجاء رسم مُضلع."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14338,12 +14514,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "بقعة الضوء بزاوية أكبر من 90 درجة لا يمكنها إلقاء الظلال."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"يجب تعيين مصدر مجسم-التنقل (NavigationMesh) أو إنشاؤه حتى تعمل هذه العقدة."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14351,6 +14526,12 @@ msgstr ""
"يجب أن يكون نموذج-مجسم-التنقل (NavigationMeshInstance) تابعًا أو حفيدًا لعقدة "
"التنقل (Navigation node). انه يوفر فقط بيانات التنقل."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "لم يتم تعيين أي شكل."
@@ -14795,10 +14976,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "تكليفها لوظيفة برمجية."
diff --git a/editor/translations/az.po b/editor/translations/az.po
index ff29feec0c..bc7f45ca0f 100644
--- a/editor/translations/az.po
+++ b/editor/translations/az.po
@@ -1,6 +1,6 @@
# Azerbaijani translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Jafar Tarverdiyev <cefertarverdiyevv@gmail.com>, 2021.
@@ -341,6 +341,10 @@ msgid "Duplicate Key(s)"
msgstr "Açar(lar)ı çoxalt"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Açar(lar)ı sil"
@@ -518,6 +522,11 @@ msgstr "Bu seçim Bezier redaktəsi üçün işləmir, çünki yalnız bir izlid
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animasya Açarlarını Ölçülə"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1514,6 +1523,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1618,7 +1631,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1639,6 +1654,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2112,7 +2128,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2248,6 +2264,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2257,6 +2286,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Animasiya xüsusiyyətləri."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Animasiya xüsusiyyətləri."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Animasiya xüsusiyyətləri."
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2995,6 +3047,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4056,6 +4122,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4079,6 +4149,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Hamısını Əvəz Et"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4088,8 +4163,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Hamısını Əvəz Et"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4302,6 +4378,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5726,6 +5808,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5754,6 +5840,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5848,20 +5938,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Seçili açar(lar)-ı çoxalt"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Seçili açar(lar)-ı çoxalt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Seçili açar(lar)-ı çoxalt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Seçili açar(lar)-ı çoxalt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7472,6 +7586,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Hamısını Əvəz Et"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7984,6 +8103,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8699,37 +8830,47 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Pano boşdur!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Əminsinizmi ki, bütün əlaqələri bu siqnaldan çıxartmaq istəyirsiniz?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8749,6 +8890,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11091,10 +11236,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11367,6 +11508,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12297,63 +12452,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13289,6 +13449,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13495,16 +13665,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13899,10 +14075,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index fe8e1bc38f..03d385bf53 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -1,6 +1,6 @@
# Bulgarian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Bojidar Marinov <bojidar.marinov.bg@gmail.com>, 2016.
# Иван Пенев (Адмирал АнимЕ) <aeternus.arcis@gmail.com>, 2016-2017.
@@ -13,13 +13,14 @@
# zooid <the.zooid@gmail.com>, 2020.
# Любомир Василев <lyubomirv@gmx.com>, 2020, 2021.
# Ziv D <wizdavid@gmail.com>, 2020.
+# Violin Iliev <violin.developer@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-10-11 15:44+0000\n"
-"Last-Translator: Любомир Василев <lyubomirv@gmx.com>\n"
+"PO-Revision-Date: 2021-12-31 08:52+0000\n"
+"Last-Translator: Violin Iliev <violin.developer@gmail.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/bg/>\n"
"Language: bg\n"
@@ -27,7 +28,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 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -332,6 +333,11 @@ msgid "Duplicate Key(s)"
msgstr "Дублиране на ключа/ключовете"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Добавяне на %d кадър/кадри"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Изтриване на ключа/ключовете"
@@ -494,6 +500,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1135,7 +1145,7 @@ msgstr "Благодарности от общността на Godot!"
#: editor/editor_about.cpp editor/editor_node.cpp editor/project_manager.cpp
msgid "Click to copy."
-msgstr ""
+msgstr "Натисни за да копираш."
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
@@ -1449,6 +1459,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1553,7 +1567,9 @@ msgstr "Обновяване на сцената..."
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1574,6 +1590,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Име:"
@@ -2045,8 +2062,9 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
-msgstr ""
+#, fuzzy
+msgid "overrides %s:"
+msgstr "Замяна на всичко"
#: editor/editor_help.cpp
msgid "default:"
@@ -2182,6 +2200,20 @@ msgstr "Свойство на тема"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(стойност)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2191,6 +2223,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Копиране на свойствата"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Поставяне на свойствата"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Копиране на свойствата"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2953,6 +3008,20 @@ msgstr ""
"видими в изпълняващия се проект."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4014,6 +4083,10 @@ msgstr "Търсене във файловете"
msgid "Find:"
msgstr "Търсене:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Замяна:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Папка:"
@@ -4037,6 +4110,11 @@ msgstr "Търсене..."
msgid "Replace..."
msgstr "Замяна..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Замяна на всички"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Търсене: "
@@ -4046,8 +4124,9 @@ msgid "Replace: "
msgstr "Замяна: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Замяна на всички"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4260,6 +4339,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Ресурсът не може да бъде зареден."
@@ -5706,6 +5791,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Влачене: преместване на избрания възел."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Влачене: преместване на избрания възел."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Задаване на централната точка на възела."
@@ -5736,6 +5826,10 @@ msgid "Scale Mode"
msgstr "Режим на скалиране"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5832,20 +5926,44 @@ msgstr "Заключване на избрания обект на място (
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Изтриване на възела/възлите"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Прави така, че децата на този обект да не могат да бъдат избирани."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Групиране на избраното"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Възстановява на способността да се избират децата на обекта."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Разгрупиране на избраното"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Опции на скелета"
@@ -7470,6 +7588,11 @@ msgid "Find in Files..."
msgstr "Търсене във файловете…"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Замяна..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7989,6 +8112,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Връщане на стандартните настройки"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8702,6 +8838,28 @@ msgid "Another Theme"
msgstr "Друга тема"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Добавяне на тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Налични профили:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Полигонната мрежа е празна!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Потвърждаване на преименуването на елемента"
@@ -8724,18 +8882,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Добавяне на тип"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Добавяне на тип елемент"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Типове на възлите:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показване на стандартните"
@@ -8752,6 +8898,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Добавяне на тип елемент"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Тема:"
@@ -11114,10 +11264,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Замяна:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11390,6 +11536,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12329,63 +12489,70 @@ msgstr "Запълване на избраното"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Трябва да се зададе или създаде ресурс от тип NavigationMesh, за може да "
+"работи този възел."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Изпичане на NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Изчистване на навигационната полигонна мрежа."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Създаване на полигонна мрежа…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Преобразуване на навигационната полигонна мрежа в собствения формат…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Настройка на генератора на навигационни полигонни мрежи:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Готово!"
@@ -13351,6 +13518,16 @@ msgstr ""
"Прикриващият полигон за този прикриващ обект е празен. Моля, нарисувайте "
"полигон."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13568,13 +13745,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Трябва да се зададе или създаде ресурс от тип NavigationMesh, за може да "
-"работи този възел."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -13582,6 +13757,12 @@ msgstr ""
"NavigationMeshInstance трябва да бъде дъщерен или под-дъщерен на възел от "
"тип Navigation. Той само предоставя данните за навигирането."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13982,10 +14163,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index d2c5c1ce46..a5f504af97 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -1,6 +1,6 @@
# Bengali translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Abu Md. Maruf Sarker <maruf.webdev@gmail.com>, 2016-2017.
# Abdullah Zubair <abdullahzubair109@gmail.com>, 2017.
@@ -327,6 +327,11 @@ msgid "Duplicate Key(s)"
msgstr "কী (সমূহ) প্রতিলিপি করুন"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "ফ্রেম যোগ করুন"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "কী (সমূহ) অপসারণ করুন"
@@ -499,6 +504,11 @@ msgstr ""
"এই বিকল্পটি বেজিয়ার সম্পাদনার জন্য কাজ করে না, কারণ এটি কেবলমাত্র Single ট্র্যাক।"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "অ্যানিমেশনের (Anim) চাবিসমূহের আকার পরিবর্তন করুন"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1520,6 +1530,10 @@ msgid "Invalid name."
msgstr "অগ্রহনযোগ্য নাম।"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "গ্রহনযোগ্য অক্ষরসমূহ:"
@@ -1634,7 +1648,9 @@ msgstr "দৃশ্য হাল নাগাদ হচ্ছে..."
msgid "[empty]"
msgstr "(খালি/শূন্য)"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[অসংরক্ষিত]"
@@ -1656,6 +1672,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "নাম:"
@@ -2182,7 +2199,7 @@ msgstr "প্রোপার্টি-সমূহ:"
#: editor/editor_help.cpp
#, fuzzy
-msgid "override:"
+msgid "overrides %s:"
msgstr "ওভাররাইড..."
#: editor/editor_help.cpp
@@ -2350,6 +2367,20 @@ msgstr "প্রোপার্টি-সমূহ:"
msgid "Property:"
msgstr "প্রপার্টি:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "মান"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2359,6 +2390,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "প্রোপার্টি-সমূহ:"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "প্রোপার্টি-সমূহ:"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "পথ প্রতিলিপি/কপি করুন"
+
#: editor/editor_log.cpp
#, fuzzy
msgid "Output:"
@@ -3192,6 +3246,20 @@ msgstr ""
"পলিগন-সমূহ দৃশ্যমান হবে।"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "দৃশ্যের পরিবর্তনসমূহ সুসংগত/সমন্বয় করুন"
@@ -4410,6 +4478,11 @@ msgstr "টাইল খুঁজুন"
msgid "Find:"
msgstr "সন্ধান করুন"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "প্রতিস্থাপন করুন"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4435,6 +4508,11 @@ msgstr "খুঁজুন..."
msgid "Replace..."
msgstr "প্রতিস্থাপন..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "সমস্তগুলি প্রতিস্থাপন করুন"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4447,7 +4525,7 @@ msgstr "প্রতিস্থাপন করুন"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "সমস্তগুলি প্রতিস্থাপন করুন"
#: editor/find_in_files.cpp
@@ -4686,6 +4764,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "রিসোর্স লোড ব্যর্থ হয়েছে।"
@@ -6265,6 +6349,11 @@ msgstr "অল্টার কী + টান: স্থানান্তর"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "অল্টার কী + টান: স্থানান্তর"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "নির্বাচিত ট্র্যাক/পথ অপসারণ করুন।"
@@ -6297,6 +6386,10 @@ msgid "Scale Mode"
msgstr "মাপের মোড করুন (R)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6408,20 +6501,44 @@ msgstr "নির্বাচিত বস্তুটিকে এই স্থ
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "নির্বাচিত সমূহ অপসারণ করুন"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "বস্তুর অন্তর্ভুক্ত-সমূহ যাতে নির্বাচনযোগ্য না হয় তা নিশ্চিত করে।"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "নির্বাচিত সমূহ অপসারণ করুন"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "বস্তুর অন্তর্ভুক্ত-সমূহের নির্বাচনযোগ্যতা পুনরায় ফিরিয়ে আনে।"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "নির্বাচিত সমূহ অপসারণ করুন"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "স্কেলেটন/কাঠাম..."
@@ -8178,6 +8295,11 @@ msgid "Find in Files..."
msgstr "দ্রুত ফাইলসমূহ ফিল্টার করুন..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "প্রতিস্থাপন..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "প্রাসঙ্গিক সাহায্য"
@@ -8757,6 +8879,19 @@ msgid "Toggle Freelook"
msgstr "পূর্ণ-পর্দা অদলবদল/টগল করুন"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "প্রাথমিক sRGB ব্যবহার করুন"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "রুপান্তর"
@@ -9568,6 +9703,30 @@ msgstr "থিম ইম্পোর্ট করুন"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "ধরণ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "উপস্থিত নোডসমূহ:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "সংরক্ষণের পথটি খালি!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "একধিক প্রকল্প খোলায় আপনি সুনিশ্চিত?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "অ্যানিমেশন (Anim) ট্র্যাক/পথ-এর নাম পরিবর্তন করুন"
@@ -9593,21 +9752,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "ধরণ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "বস্তু যোগ করুন"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "নোডের ধরণ সন্ধান করুন"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "লোড ডিফল্ট"
@@ -9626,6 +9770,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "বস্তু যোগ করুন"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "থিম"
@@ -12216,11 +12365,6 @@ msgid "Batch Rename"
msgstr "পুনঃনামকরণ করুন"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "প্রতিস্থাপন করুন"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12517,6 +12661,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "নতুন দৃশ্য এইরূপে সংরক্ষণ করুন..."
@@ -13577,71 +13735,78 @@ msgstr "সব সিলেক্ট করুন"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"এই নোডটি সফল্ভাবে কাজ করার জন্য একটি NavigationMesh রিসোর্স নির্ধারন বা তৈরি "
+"করতে হবে।"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
#, fuzzy
msgid "Clear the navigation mesh."
msgstr "Navigation Mesh তৈরি করুন"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "কনফিগারেশন তৈরি করা হচ্ছে..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "গ্রিড সাইজ হিসাব করা হচ্ছে..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Creating heightfield..."
msgstr "লাইটের ওকট্রী (octree) তৈরি করা হচ্ছে"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Marking walkable triangles..."
msgstr "অনুবাদ-সম্ভব শব্দমালা/বাক্য-সমূহ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "কম্প্যাক্ট হাইফিল্ড তৈরি করা হছে..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "ব্যাবহারযোগ্য পথ মুছে ফেলা হচ্ছে..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Partitioning..."
msgstr "সতর্কতা"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Creating contours..."
msgstr "ওকট্রী (octree) গঠনবিন্যাস তৈরি করা হচ্ছে"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Creating polymesh..."
msgstr "প্রান্তরেখা মেস তৈরি করুন..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Converting to native navigation mesh..."
msgstr "Navigation Mesh তৈরি করুন"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "ন্যাভিগেশন ম্যাশ জেনারেটর সেটআপ:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Parsing Geometry..."
msgstr "জ্যামিতিক-আকার বিশ্লেষণ করা হচ্ছে"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "সম্পন্ন হয়েছে!"
@@ -14688,6 +14853,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "এই occluder এর জন্য occluder পলিগনটি খালি। অনুগ্রহ করে একটি পলিগন আঁকুন!"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14921,13 +15096,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"এই নোডটি সফল্ভাবে কাজ করার জন্য একটি NavigationMesh রিসোর্স নির্ধারন বা তৈরি "
-"করতে হবে।"
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14935,6 +15108,12 @@ msgstr ""
"NavigationMeshInstance-কে অবশ্যই Navigation-এর অংশ অথবা অংশের অংশ হতে হবে। "
"এটা শুধুমাত্র ন্যাভিগেশনের তথ্য প্রদান করে।"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -15354,10 +15533,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/br.po b/editor/translations/br.po
index 696097454d..e7990afc1f 100644
--- a/editor/translations/br.po
+++ b/editor/translations/br.po
@@ -1,6 +1,6 @@
# Breton translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Feufoll <feufoll@gmail.com>, 2020.
@@ -322,6 +322,10 @@ msgid "Duplicate Key(s)"
msgstr "Eilskoueriañ Alc'hwez(ioù)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Dilemel Alc'hwez(ioù)"
@@ -495,6 +499,11 @@ msgstr ""
"An opsion-se ne dro ket evit editañ Bezier, dre eo ur roudenn nemetken."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Cheñch Skeul Alc'hwezioù Fiñvskeudenn"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1449,6 +1458,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1553,7 +1566,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1574,6 +1589,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2046,7 +2062,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2182,6 +2198,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2191,6 +2220,27 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Roudenn Perzhioù"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2929,6 +2979,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3988,6 +4052,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4011,6 +4079,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4020,7 +4092,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4234,6 +4306,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5655,6 +5733,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5683,6 +5765,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5777,20 +5863,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Eilskoueriañ an Alc'whezh(ioù) Uhelsklaeriet"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Eilskoueriañ an Alc'whezh(ioù) Uhelsklaeriet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Eilskoueriañ an Alc'whezh(ioù) Uhelsklaeriet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Eilskoueriañ an Alc'whezh(ioù) Uhelsklaeriet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7393,6 +7503,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7905,6 +8019,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8616,37 +8742,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8666,6 +8800,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11006,10 +11144,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11282,6 +11416,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12211,63 +12359,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13202,6 +13355,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13408,16 +13571,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13812,10 +13981,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 367a724f79..043bc573f0 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -1,6 +1,6 @@
# Catalan translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# BennyBeat <bennybeat@gmail.com>, 2017.
# Javier Ocampos <xavier.ocampos@gmail.com>, 2018.
@@ -332,6 +332,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplica les Claus"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Afegir %d Fotograma(es)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Elimina les Claus"
@@ -502,6 +507,11 @@ msgstr ""
"Aquesta opció no funciona per l'edició de Bézier, ja que és una pista única."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Escala les Claus"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1499,6 +1509,10 @@ msgid "Invalid name."
msgstr "Nom no vàlid."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caràcters vàlids:"
@@ -1604,7 +1618,9 @@ msgstr "S'està actualitzant l'escena..."
msgid "[empty]"
msgstr "[buit]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[no desat]"
@@ -1625,6 +1641,7 @@ msgstr "Crea un Directori"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nom:"
@@ -2132,7 +2149,8 @@ msgid "Properties"
msgstr "Propietats"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "Sobreescriu:"
#: editor/editor_help.cpp
@@ -2188,8 +2206,8 @@ msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Aquesta propietat no disposa de cap descripció. Podeu contribuir "
-"[color=$color][url=$url] tot aportant-ne una[/url][/color]!"
+"Aquesta propietat no disposa de cap descripció. Podeu contribuir [color="
+"$color][url=$url] tot aportant-ne una[/url][/color]!"
#: editor/editor_help.cpp
msgid "Method Descriptions"
@@ -2276,6 +2294,20 @@ msgstr "Propietats del tema"
msgid "Property:"
msgstr "Propietat:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2285,6 +2317,29 @@ msgstr "Definir %s"
msgid "Set Multiple:"
msgstr "Estableix Múltiples:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Propietats"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Propietats"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copia el camí de l'Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Sortida:"
@@ -3056,8 +3111,8 @@ msgstr ""
"Quan aquesta opció està activada, utilitzar el desplegament en un clic farà "
"que l'executable intenti connectar-se a la IP d'aquest ordinador per tal que "
"el projecte pugui ser depurat.\n"
-"Aquesta opció està pensada per ser usada per la depuració remota ("
-"habitualment amb un dispositiu mòbil).\n"
+"Aquesta opció està pensada per ser usada per la depuració remota "
+"(habitualment amb un dispositiu mòbil).\n"
"No cal que l'activeu per utilitzar el depurador del GDScript localment."
#: editor/editor_node.cpp
@@ -3108,6 +3163,20 @@ msgstr ""
"l'execució del joc."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronitzar els Canvis en Escena"
@@ -4260,6 +4329,10 @@ msgstr "Cercar en els Fitxers"
msgid "Find:"
msgstr "Cercar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Reemplaça:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Directori:"
@@ -4285,6 +4358,11 @@ msgstr "Cerca..."
msgid "Replace..."
msgstr "Substitueix..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Reemplaça-hoTot"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Cerca: "
@@ -4294,8 +4372,9 @@ msgid "Replace: "
msgstr "Reemplaça: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Reemplaça-ho Tot (no es pot desfer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Reemplaça-hoTot"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4521,6 +4600,12 @@ msgstr ""
"ADVERTIMENT: Existeixen elements que utilitzen aquest recurs, es possible "
"que deixin de carregar-se correctament."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "No s'ha pogut carregar el recurs."
@@ -6021,6 +6106,11 @@ msgstr "Alt+Arrossegar: Mou el node seleccionat."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrossegar: Mou el node seleccionat."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Eliminar el node o transició seleccionats."
@@ -6051,6 +6141,10 @@ msgid "Scale Mode"
msgstr "Mode d'Escalat"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6147,20 +6241,44 @@ msgstr "Immobilitza l'Objecte."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bloca la selecció"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Allibera l'Objecte."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Elimina Seleccionats"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Impossibilita la selecció dels nodes fills."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Seleccionat"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Permet la selecció de nodes fills."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Seleccionat"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opcions d'esquelet"
@@ -7832,6 +7950,11 @@ msgid "Find in Files..."
msgstr "Cercar en Fitxers..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Substitueix..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ajuda Contextual"
@@ -8378,6 +8501,19 @@ msgid "Toggle Freelook"
msgstr "Vista Lliure"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Carrega Valors predeterminats"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformar"
@@ -9152,6 +9288,30 @@ msgstr "Importa un Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipus"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfils Disponibles:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "El nom del fitxer és buit."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Esteu segur que voleu obrir més d'un projecte de cop?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Reanomena la Pista"
@@ -9177,21 +9337,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipus"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Afegeix un Element"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Tipus de node:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Carrega Valors predeterminats"
@@ -9209,6 +9354,11 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Afegeix un Element"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11824,10 +11974,6 @@ msgid "Batch Rename"
msgstr "Reanomena en lot"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Reemplaça:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefix:"
@@ -12126,6 +12272,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Anomena i Desa la Nova Escena..."
@@ -13127,63 +13287,70 @@ msgstr "Omplir la Selecció"
msgid "End of inner exception stack trace"
msgstr "Final de la traça de la pila d'excepció interna"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Cal crear o establir un recurs de tipus NavigationMesh per al correcte "
+"funcionament d'aquest node."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Reestableix la malla de navegació."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Establint la Configuració..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calculant la mida de la quadrícula..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Creant un camp de desplaçaments verticals..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcant els triangles transitables..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construcció d'un camp compacte de desplaçaments verticals..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erosionant l'àrea transitable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Establint Particions..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Creant els contorns..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "creant la polyMesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convertint-ho en una malla de navegació nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuració del Generador de Malles de Navegació:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analitzant la Geometria..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Fet!"
@@ -14242,6 +14409,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"El polígon oclusor d'aquest oclusor és buit. Si us plau, dibuixeu un polígon."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14503,13 +14680,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"Un SpotLight amb un angle més ample que 90 graus no pot projectar ombres."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Cal crear o establir un recurs de tipus NavigationMesh per al correcte "
-"funcionament d'aquest node."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14517,6 +14692,12 @@ msgstr ""
"NavigationMeshInstance ha de ser fill o nét d'un node Navigation. Només "
"proporciona dades de navegació."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14958,10 +15139,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Assignació a funció."
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index e06ac81678..eba90c7fe3 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -1,6 +1,6 @@
# Czech translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Fadex <vitekpaulik@gmail.com>, 2017.
# Jan 'spl!te' Kondelík <j.kondelik@centrum.cz>, 2016, 2018.
@@ -9,7 +9,7 @@
# Luděk Novotný <gladosicek@gmail.com>, 2016, 2018.
# Martin Novák <maidx@seznam.cz>, 2017, 2019.
# zxey <r.hozak@seznam.cz>, 2018.
-# Vojtěch Šamla <auzkok@seznam.cz>, 2018, 2019, 2020, 2021.
+# Vojtěch Šamla <auzkok@seznam.cz>, 2018, 2019, 2020, 2021, 2022.
# Peeter Angelo <contact@peeterangelo.com>, 2019.
# VojtechBrezina <vojta.brezina@gmail.com>, 2019, 2021.
# Garrom Orc Shaman <garromorcshaman@gmail.com>, 2019.
@@ -33,8 +33,8 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-15 17:40+0000\n"
-"Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n"
+"PO-Revision-Date: 2022-01-03 03:55+0000\n"
+"Last-Translator: Vojtěch Šamla <auzkok@seznam.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
"Language: cs\n"
@@ -42,7 +42,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -347,6 +347,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplikovat klíč(e)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Přidat %d snímků"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Odstranit klíč(e)"
@@ -515,6 +520,11 @@ msgstr ""
"jednu stopu."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animace: změnit měřítko klíčů"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1497,6 +1507,10 @@ msgid "Invalid name."
msgstr "Neplatný název."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Platné znaky:"
@@ -1601,7 +1615,9 @@ msgstr "Aktualizuji scénu..."
msgid "[empty]"
msgstr "[prázdné]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[neuloženo]"
@@ -1622,6 +1638,7 @@ msgstr "Vytvořit složku"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Jméno:"
@@ -2114,7 +2131,8 @@ msgid "Properties"
msgstr "Vlastnosti"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "přepsat:"
#: editor/editor_help.cpp
@@ -2138,19 +2156,16 @@ msgid "Constants"
msgstr "Konstanty"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Font"
+msgstr "Fonty"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Ikona"
+msgstr "Ikony"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
-msgstr "Styl"
+msgstr "Styly"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2257,6 +2272,20 @@ msgstr "Vlastnost motivu"
msgid "Property:"
msgstr "Vlastnost:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(hodnota)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2266,6 +2295,29 @@ msgstr "Nastav %s"
msgid "Set Multiple:"
msgstr "Nastavit více:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Kopírovat vlastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Vložit vlastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Zkopírovat cestu ke skriptu"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Výstup:"
@@ -3072,6 +3124,20 @@ msgstr ""
"polygony."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Synchronizovat změny scény"
@@ -4189,6 +4255,10 @@ msgstr "Najít v souborech"
msgid "Find:"
msgstr "Najít:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Nahradit:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Složka:"
@@ -4214,6 +4284,11 @@ msgstr "Najít..."
msgid "Replace..."
msgstr "Nahradit..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Nahradit všechny"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Najít: "
@@ -4223,8 +4298,9 @@ msgid "Replace: "
msgstr "Nahradit: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Nahradit všechny (bez možnosti vrácení)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Nahradit všechny"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4443,6 +4519,12 @@ msgstr ""
"VAROVÁNÍ: Existují zdroje, který tento zdroj používají. Může se stát, že se "
"přestanou správně načítat."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Selhalo nahrání zdroje."
@@ -5899,6 +5981,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+přetažení: Přesun vybraného uzlu."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+přetažení: Přesun vybraného uzlu."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Nastavení polohy pivotu vybraného uzlu."
@@ -5928,6 +6015,10 @@ msgid "Scale Mode"
msgstr "Režim škálování"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6024,20 +6115,44 @@ msgstr "Uzamknout vybraný objekt na místě (nemůže být přesunut)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Uzamčít vybraný"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Uvolnit vybraný objekt (může být přesunut)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Odemčít vybraný"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Zajistí, aby nebylo možné vybrat potomky objektu."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Seskupit vybrané"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Obnoví, aby bylo možné vybrat potomky objektu."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Odskupit vybrané"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Možnosti kostry"
@@ -6644,14 +6759,12 @@ msgid "Remove Selected Item"
msgstr "Odstranit vybranou položku"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Import from Scene (Ignore Transforms)"
-msgstr "Importovat ze scény"
+msgstr "Importovat ze scény (ignorovat transformace)"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Import from Scene (Apply Transforms)"
-msgstr "Importovat ze scény"
+msgstr "Importovat ze scény (aplikovat transformace)"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Update from Scene"
@@ -7224,9 +7337,8 @@ msgid "ResourcePreloader"
msgstr "Zdroj"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Převrátit horizontálně"
+msgstr "Převrátit portály"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Room Generate Points"
@@ -7237,9 +7349,8 @@ msgid "Generate Points"
msgstr "Generovat body"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Převrátit horizontálně"
+msgstr "Převrátit portál"
#: editor/plugins/room_manager_editor_plugin.cpp
#, fuzzy
@@ -7677,6 +7788,11 @@ msgid "Find in Files..."
msgstr "Najít v souborech..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Nahradit..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontextová nápověda"
@@ -8107,9 +8223,8 @@ msgstr ""
"Nelze jej použít jako spolehlivý ukazatel výkonu ve hře."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Konvertovat na %s"
+msgstr "Konvertovat místnosti"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8215,6 +8330,19 @@ msgid "Toggle Freelook"
msgstr "Přepnout volný pohled"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Obnovit výchozí"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformace"
@@ -8339,9 +8467,8 @@ msgid "Post"
msgstr "Po"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Unnamed Gizmo"
-msgstr "Nepojmenovaný projekt"
+msgstr "Nepojmenované gizmo"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8601,9 +8728,8 @@ msgid "{num} color(s)"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Nebyly nalezeny žádné dílčí zdroje."
+msgstr "Nebyly nalezeny žádné barvy."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8611,9 +8737,8 @@ msgid "{num} constant(s)"
msgstr "Konstanty"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Konstantní barva."
+msgstr "Nebyly nalezeny žádné konstanty."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
@@ -8667,9 +8792,8 @@ msgid "Finalizing"
msgstr "Analyzuji"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Filtry:"
+msgstr "Filtr:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
@@ -8776,9 +8900,8 @@ msgid "Deselect all Theme items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Importovat scénu"
+msgstr "Importovat vybrané"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8799,9 +8922,8 @@ msgid "Remove All Color Items"
msgstr "Odstranit všechny položky"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Odstranit položku"
+msgstr "Přejmenovat položku"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8938,9 +9060,8 @@ msgid "Add Theme Item"
msgstr "Přidat položku"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Název uzlu:"
+msgstr "Starý název:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8948,14 +9069,12 @@ msgid "Import Items"
msgstr "Importovat motiv"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Výchozí"
+msgstr "Výchozí motiv"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Editovat téma"
+msgstr "Motiv editoru"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select Another Theme Resource:"
@@ -8967,6 +9086,29 @@ msgid "Another Theme"
msgstr "Importovat motiv"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Přidat typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Dostupné profily:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Název souboru je prázdný."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Jste si jisti, že chcete otevřit více než jeden projekt?"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Confirm Item Rename"
msgstr "Animace: přejmenování stopy"
@@ -8977,9 +9119,8 @@ msgid "Cancel Item Rename"
msgstr "Dávkové přejmenování"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Přepisuje"
+msgstr "Přepsat položku"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
@@ -8992,38 +9133,27 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "Typ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Přidat položku"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Typy uzlu:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Načíst výchozí"
+msgstr "Zobrazit výchozí"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Přepisuje"
+msgstr "Přepsat všechny"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Přidat položku"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Motiv:"
@@ -9037,14 +9167,12 @@ msgid "Add, remove, organize and import Theme items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Náhled"
+msgstr "Přidat náhled"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Obnovit náhled"
+msgstr "Výchozí náhled"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select UI Scene:"
@@ -10772,7 +10900,6 @@ msgid "Imported Project"
msgstr "Importovaný projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Neplatný název projektu."
@@ -11032,9 +11159,8 @@ msgid "Project Manager"
msgstr "Správce projektů"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Projekty"
+msgstr "Místní projekty"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11045,14 +11171,12 @@ msgid "Last Modified"
msgstr "Datum modifikace"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Exportovat projekt"
+msgstr "Upravit projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Přejmenovat projekt"
+msgstr "Spustit projekt"
#: editor/project_manager.cpp
msgid "Scan"
@@ -11072,14 +11196,12 @@ msgid "New Project"
msgstr "Nový projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Importovaný projekt"
+msgstr "Importovat projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Přejmenovat projekt"
+msgstr "Odstranit projekt"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11119,9 +11241,8 @@ msgstr ""
"Přejete si prozkoumat oficiální ukázkové projekty v knihovně assetů?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Filtrovat vlastnosti"
+msgstr "Filtrovat projekty"
#: editor/project_manager.cpp
#, fuzzy
@@ -11332,9 +11453,8 @@ msgid "Override for Feature"
msgstr "Přepsání vlastnosti"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Přidat překlad"
+msgstr "Přidat %d překladů"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
@@ -11531,10 +11651,6 @@ msgid "Batch Rename"
msgstr "Dávkové přejmenování"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Nahradit:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefix:"
@@ -11813,6 +11929,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Uložit novou scénu jako..."
@@ -12597,9 +12727,8 @@ msgid "Export Mesh GLTF2"
msgstr "Exportovat Mesh Library"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Exportovat..."
+msgstr "Exportovat GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12775,63 +12904,70 @@ msgstr "Vyplnit výběr"
msgid "End of inner exception stack trace"
msgstr "Konec zásobníku trasování vnitřní výjimky"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Aby tento uzel mohl fungovat, musí mít nastaven nebo vytvořen zdroj "
+"NavigationMesh."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Zapéct NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Vymazat navigační model."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Nastavuji konfiguraci..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Počítám velikost mřížky..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Vytvářím výškové pole..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Vyznačuji průchozí trojúhelníky..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Konstruuji kompaktní výškové pole..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Eroduji průchozí oblast..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Rozděluji..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Vytvářím kontury..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Vytvářím polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Převádím na nativní navigační mřížku..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Nastavení generátoru navigační sítě:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Parsuji geometrii..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Hotovo!"
@@ -13461,9 +13597,8 @@ msgid "'apksigner' returned with error #%d"
msgstr ""
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Verifying %s..."
-msgstr "Přidávám %s..."
+msgstr "Ověřuji %s..."
#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
@@ -13552,9 +13687,8 @@ msgid "Package not found: %s"
msgstr "Animace nenalezena: '%s'"
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Creating APK..."
-msgstr "Vytvářím kontury..."
+msgstr "Vytvářím APK..."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13573,9 +13707,8 @@ msgid ""
msgstr ""
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Adding files..."
-msgstr "Přidávám %s..."
+msgstr "Přidávám soubory..."
#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
@@ -13634,9 +13767,8 @@ msgid "Could not write file:"
msgstr "Nelze zapsat soubor:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Nelze zapsat soubor:"
+msgstr "Nelze přečíst soubor:"
#: platform/javascript/export/export.cpp
#, fuzzy
@@ -13845,6 +13977,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Stínový polygon pro toto stínítko je prázdný. Nakreslete polygon."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14095,13 +14237,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight s úhlem širším než 90 stupňů nemůže vrhat stíny."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Aby tento uzel mohl fungovat, musí mít nastaven nebo vytvořen zdroj "
-"NavigationMesh."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14109,6 +14249,12 @@ msgstr ""
"NavigationMeshInstance musí být dítětem nebo vnoučetem uzlu Navigation. "
"Poskytuje pouze data pro navigaci."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14555,10 +14701,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Přiřazeno funkci."
diff --git a/editor/translations/da.po b/editor/translations/da.po
index e240179bb3..f35a125640 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -1,6 +1,6 @@
# Danish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Dankse Memes <purplelops@gmail.com>, 2018.
# David Lamhauge <davidlamhauge@gmail.com>, 2016, 2018.
@@ -340,6 +340,10 @@ msgid "Duplicate Key(s)"
msgstr "Dublikér nøgle(r)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Slet nøgle(r)"
@@ -519,6 +523,11 @@ msgstr ""
"spor."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skaler Nøgler"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1538,6 +1547,10 @@ msgid "Invalid name."
msgstr "Ugyldigt navn."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Gyldige karakterer:"
@@ -1653,7 +1666,9 @@ msgstr "Opdatere scene..."
msgid "[empty]"
msgstr "[tom]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ikke gemt]"
@@ -1674,6 +1689,7 @@ msgstr "Opret 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Navn:"
@@ -2199,7 +2215,7 @@ msgid "Properties"
msgstr "Egenskaber"
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2345,6 +2361,20 @@ msgstr "Tema Egenskaber"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(værdi)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2354,6 +2384,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Egenskaber"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Egenskaber"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopier Sti"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -3167,6 +3220,20 @@ msgstr ""
"denne indstilling er tændt."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Synkroniser Scene Ændringer"
@@ -4328,6 +4395,11 @@ msgstr "%d flere filer"
msgid "Find:"
msgstr "Find"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Erstat"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4353,6 +4425,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Erstat Alle"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4365,7 +4442,7 @@ msgstr "Erstat"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Erstat Alle"
#: editor/find_in_files.cpp
@@ -4595,6 +4672,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Fejler med at indlæse ressource."
@@ -6121,6 +6204,11 @@ msgstr "Slet markerede filer?"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Slet markerede filer?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Fjern valgte node eller overgang."
@@ -6150,6 +6238,10 @@ msgid "Scale Mode"
msgstr "Skifter Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6250,20 +6342,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Vælg værktøj"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Slet Valgte"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Fjern Markering"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Fjern Markering"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Singleton"
@@ -7956,6 +8072,11 @@ msgid "Find in Files..."
msgstr "Filtrer filer..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Filtrer filer..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8496,6 +8617,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Indlæs Default"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9279,6 +9413,30 @@ msgstr "Medlemmer"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Find Node Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Tilgængelige Noder:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Udklipsholder er tom"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Er du sikker på at du vil fjerne alle forbindelser fra dette signal?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Omdøb Spor"
@@ -9303,20 +9461,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Find Node Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Find Node Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Indlæs Default"
@@ -9333,6 +9477,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Medlemmer"
@@ -11823,11 +11971,6 @@ msgid "Batch Rename"
msgstr "Omdøb"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Erstat"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12116,6 +12259,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -13117,63 +13274,70 @@ msgstr "All selection"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"En NavigationMesh ressource skal laves eller oprettes for at denne node kan "
+"fungere."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -14198,6 +14362,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Occluder polygon for denne occluder er tom. Tegn venligst en polygon!"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14429,13 +14603,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"En NavigationMesh ressource skal laves eller oprettes for at denne node kan "
-"fungere."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14443,6 +14615,12 @@ msgstr ""
"NavigationMeshInstance skal være et barn eller barnebarn til en Navigation "
"node. Det giver kun navigationsdata."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14861,10 +15039,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 5e468b75f0..27b04cd77b 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -1,6 +1,6 @@
# German translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Alexander Mahr <alex.mahr@gmail.com>, 2016, 2019.
# Andreas Esau <andreasesau@gmail.com>, 2016.
@@ -74,13 +74,14 @@
# Dominik Moos <dominik.moos@protonmail.com>, 2021.
# Zae Chao <zaevi@live.com>, 2021.
# Tim <tim14speckenwirth@gmail.com>, 2021.
+# Antonio Noack <corperateraider@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-11 06:25+0000\n"
-"Last-Translator: So Wieso <sowieso@dukun.de>\n"
+"PO-Revision-Date: 2022-01-03 03:55+0000\n"
+"Last-Translator: Antonio Noack <corperateraider@gmail.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -88,7 +89,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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -391,6 +392,11 @@ msgid "Duplicate Key(s)"
msgstr "Schlüsselbilder duplizieren"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "%d Frame(s) hinzufügen"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Schlüsselbilder entfernen"
@@ -561,6 +567,11 @@ msgstr ""
"sich nur um eine einzige Spur handelt."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Schlüsselbilder skalieren"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1550,6 +1561,10 @@ msgid "Invalid name."
msgstr "Ungültiger Name."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Gültige Zeichen:"
@@ -1654,7 +1669,9 @@ msgstr "Aktualisiere Szene..."
msgid "[empty]"
msgstr "[leer]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ungespeichert]"
@@ -1675,6 +1692,7 @@ msgstr "Ordner erstellen"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Name:"
@@ -2180,7 +2198,8 @@ msgid "Properties"
msgstr "Eigenschaften"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "Überschreibungen:"
#: editor/editor_help.cpp
@@ -2217,7 +2236,7 @@ msgstr "Stile"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr "Aufzählungen"
+msgstr "Aufzählungstypen"
#: editor/editor_help.cpp
msgid "Property Descriptions"
@@ -2320,6 +2339,20 @@ msgstr "Theme-Eigenschaft"
msgid "Property:"
msgstr "Eigenschaft:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(Wert)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2329,6 +2362,29 @@ msgstr "%s setzen"
msgid "Set Multiple:"
msgstr "Mehrfach festlegen:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Eigenschaften kopieren"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Eigenschaften einfügen"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Skriptpfad kopieren"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Ausgabe:"
@@ -3156,6 +3212,20 @@ msgstr ""
"diese Option gewählt ist."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Szenenänderungen synchronisieren"
@@ -4280,6 +4350,10 @@ msgstr "In Dateien suchen"
msgid "Find:"
msgstr "Suche:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Ersetzen:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Verzeichnis:"
@@ -4305,6 +4379,11 @@ msgstr "Finde..."
msgid "Replace..."
msgstr "Ersetzen..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Alle ersetzen"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Suche: "
@@ -4314,8 +4393,9 @@ msgid "Replace: "
msgstr "Ersetzen: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Alle ersetzen (nicht rückgängig)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Alle ersetzen"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4540,6 +4620,12 @@ msgstr ""
"ACHTUNG: Es existieren Inhalte die diese Ressource nutzen und nachher "
"möglicherweise nicht mehr ordnungsgemäß laden können."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Laden der Ressource gescheitert."
@@ -6005,6 +6091,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Ziehen = Ausgewähltes Node verschieben."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Ziehen = Ausgewähltes Node verschieben."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Pivotpunkt des ausgewählten Nodes festlegen."
@@ -6035,6 +6126,10 @@ msgid "Scale Mode"
msgstr "Skalierungsmodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6133,20 +6228,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Sperren ausgewählt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Das ausgewählte Objekt entsperren (kann bewegt werden)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Auswahl entsperren"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Verhindert das Auswählen von Unterobjekten dieses Nodes."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Auswahl gruppieren"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Stellt die Auswählbarkeit aller Unterobjekte wieder her."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Auswahl entgruppieren"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Skelett-Einstellungen"
@@ -7795,6 +7914,11 @@ msgid "Find in Files..."
msgstr "In Dateien suchen..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Ersetzen..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontexthilfe"
@@ -8324,6 +8448,19 @@ msgid "Toggle Freelook"
msgstr "Freie Kamera umschalten"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Auf Standardwerte zurücksetzen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformation"
@@ -9048,6 +9185,29 @@ msgid "Another Theme"
msgstr "Anderes Design"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Typ hinzufügen"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Verfügbare Profile:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Dateiname ist leer."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Sollen wirklich mehrere Projekte geöffnet werden?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Elementumbenennung bestätigen"
@@ -9072,18 +9232,6 @@ msgstr ""
"StyleBox werden ebenfalls in allen StyleBoxen des gleichen Typs geändert."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Typ hinzufügen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Elementtyp hinzufügen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Node-Typen:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Standard anzeigen"
@@ -9100,6 +9248,10 @@ msgid "Override all default type items."
msgstr "Alle Standard-Typelemente überbrücken."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Elementtyp hinzufügen"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Thema:"
@@ -11616,10 +11768,6 @@ msgid "Batch Rename"
msgstr "Stapelweise Umbenennung"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Ersetzen:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Präfix:"
@@ -11915,6 +12063,20 @@ msgstr ""
"erzeugt werden."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Speichere neue Szene als..."
@@ -12878,63 +13040,70 @@ msgstr "Solution bauen"
msgid "End of inner exception stack trace"
msgstr "Ende des inneren Exception-Stack-Traces"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Damit dieser Node funktionieren kann, muss eine NavigationMesh Ressource "
+"erzeugt oder gesetzt werden."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "NavMesh backen"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Navigations-Mesh löschen."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Konfiguration wird erstellt..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Gittergröße wird berechnet..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Höhenmodell erstellen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Begehbare Dreiecke markieren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Kompaktes Höhenmodell wir konstruiert..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Begehbare Gebiete werden erodiert..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Einteilen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Konturen erzeugen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Polymesh erzeugen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "In natives Navigation-Mesh konvertieren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigation-Mesh-Generatoreinstellungen:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Parse Geometrie…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Abgeschlossen!"
@@ -13979,6 +14148,16 @@ msgstr ""
"Das Occluder-Polygon für diesen Occluder ist leer. Zum Fortfahren Polygon "
"zeichnen."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14247,13 +14426,11 @@ msgstr ""
"Ein SpotLight mit einem Winkel von mehr als 90 Grad kann keine Schatten "
"werfen."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Damit dieser Node funktionieren kann, muss eine NavigationMesh Ressource "
-"erzeugt oder gesetzt werden."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14261,6 +14438,12 @@ msgstr ""
"NavigationMeshInstance muss ein Unterobjekt erster oder zweiter Ordnung "
"eines Navigation-Nodes sein. Es liefert nur Navigationsinformationen."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Es wurde keine Form festgelegt."
@@ -14756,12 +14939,6 @@ msgstr ""
"erneut in der ‚vertex‘- oder ‚light‘-Funktion zugewiesen werden."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Varying aus Fragment-Phase konnte nicht in gesonderter Funktion abgerufen "
-"werden!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Zuweisung an Funktion."
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 7d680c73f7..ab1796503c 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
@@ -314,6 +314,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -476,6 +480,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1428,6 +1436,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1532,7 +1544,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1553,6 +1567,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2024,7 +2039,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2160,6 +2175,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2169,6 +2197,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2907,6 +2955,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3964,6 +4026,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3987,6 +4053,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -3996,7 +4066,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4210,6 +4280,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5631,6 +5707,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5659,6 +5739,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5753,20 +5837,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7366,6 +7470,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7878,6 +7986,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8589,37 +8709,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8639,6 +8767,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10979,10 +11111,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11255,6 +11383,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12184,63 +12326,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13174,6 +13321,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13380,16 +13537,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13784,10 +13947,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/el.po b/editor/translations/el.po
index a164e4d7b5..1235fd00fe 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -1,6 +1,6 @@
# Greek translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# George Tsiamasiotis <gtsiam@windowslive.com>, 2017-2018, 2019, 2020, 2021.
# Georgios Katsanakis <geo.elgeo@gmail.com>, 2019.
@@ -332,6 +332,11 @@ msgid "Duplicate Key(s)"
msgstr "Αναπαραγωγή Κλειδιών"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Προσθήκη %d Καρέ"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Διαγραφή κλειδιών"
@@ -506,6 +511,11 @@ msgstr ""
"κομμάτι."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Κλιμάκωση Κλειδιών Κίνησης"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1501,6 +1511,10 @@ msgid "Invalid name."
msgstr "Μη έγκυρο όνομα."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Έγκυροι χαρακτήρες:"
@@ -1608,7 +1622,9 @@ msgstr "Ενημέρωση σκηνής..."
msgid "[empty]"
msgstr "[άδειο]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[μη αποθηκευμένο]"
@@ -1629,6 +1645,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Όνομα:"
@@ -2130,7 +2147,8 @@ msgid "Properties"
msgstr "Ιδιότητες"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "παράκαμψη:"
#: editor/editor_help.cpp
@@ -2274,6 +2292,20 @@ msgstr "Ιδιότητα Θέματος"
msgid "Property:"
msgstr "Ιδιότητα:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(τιμή)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2283,6 +2315,29 @@ msgstr "Θέσε %s"
msgid "Set Multiple:"
msgstr "Ορισμός πολλών:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Ιδιότητες"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Ιδιότητες"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Αντιγραφή Διαδρομής Δέσμης Ενεργειών"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Έξοδος:"
@@ -3109,6 +3164,20 @@ msgstr ""
"επιλογή είναι ενεργοποιημένη."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Συγχρονισμός αλλαγών της σκηνής"
@@ -4266,6 +4335,10 @@ msgstr "Εύρεση στα Αρχεία"
msgid "Find:"
msgstr "Εύρεση:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Αντικατάσταση:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Φάκελος:"
@@ -4291,6 +4364,11 @@ msgstr "Εύρεση..."
msgid "Replace..."
msgstr "Αντικατάσταση..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Αντικατάσταση όλων"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Εύρεση: "
@@ -4300,8 +4378,9 @@ msgid "Replace: "
msgstr "Αντικατάσταση: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Αντικατάσταση όλων (χωρίς ανέραιση)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Αντικατάσταση όλων"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4518,6 +4597,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτός ο πόρος χρησιμοποιείται απο άλλους πόρους."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Απέτυχε η φόρτωση πόρου."
@@ -6002,6 +6087,11 @@ msgstr "Alt + Σύρσιμο: Μετακίνηση"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt + Σύρσιμο: Μετακίνηση"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Αφαίρεση επιλεγμένου κόμβου ή μετάβασης."
@@ -6033,6 +6123,10 @@ msgid "Scale Mode"
msgstr "Λειτουργία Κλιμάκωσης"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6131,20 +6225,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Ξεκλείδωσε το Επιλεγμένο"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Σιγουρεύει ότι τα παιδιά του αντικειμένου δεν μπορούν να επιλεχθούν."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ομαδοποίησε το Επιλεγμένο"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Επαναφέρει τη δυνατότητα των παιδιών του αντικειμένου να επιλεχθούν."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Απομαδοποίησε το Επιλεγμένο"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Επιλογές Σκελετού"
@@ -7821,6 +7939,11 @@ msgid "Find in Files..."
msgstr "Εύρεση σε Αρχεία..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Αντικατάσταση..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Βοήθεια ανάλογα με τα συμφραζόμενα"
@@ -8376,6 +8499,19 @@ msgid "Toggle Freelook"
msgstr "Εναλλαγή ελεύθερης κάμερας"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Επαναφορά προεπιλογών"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Μετασχηματισμός"
@@ -9147,6 +9283,30 @@ msgstr "Εισαγωγή θέματος"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Τύπος"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Διαθέσιμα Προφίλ:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Άδειο όνομα αρχείου."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Είστε σίγουροι πως θέλετε να ανοίξετε περισσότερα από ένα έργα;"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Μετονομασία κομματιού"
@@ -9172,21 +9332,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Τύπος"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Προσθήκη στοιχείου"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Είδος Κόμβου"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Φόρτωση προεπιλογής"
@@ -9205,6 +9350,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Προσθήκη στοιχείου"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Θέμα"
@@ -11741,10 +11891,6 @@ msgid "Batch Rename"
msgstr "Ομαδική Μετονομασία"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Αντικατάσταση:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Πρόθεμα:"
@@ -12027,6 +12173,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Αποθήκευση νέας σκηνής ως..."
@@ -13004,63 +13164,70 @@ msgstr "Γέμισμα Επιλογής"
msgid "End of inner exception stack trace"
msgstr "Τέλος ιχνηλάτησης στοίβας εσωτερικής εξαίρεσης"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Ένας πόρος πλέγματος πλοήγησης θα πρέπει να έχει ορισθεί ή δημιουργηθεί για "
+"να δουλέψει αυτός ο κόμβος."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Ψήσιμο NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Εκκαθάριση του πλέγματος πλοήγησης."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Ρύθμιση παραμέτρων..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Υπολογισμός μεγέθους πλέγματος..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Δημιουργία πεδίου ύψους..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Επισήμανση βατών τριγώνων..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Δημιουργία συμπυκνωμένου πεδίου ύψους..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Διάβρωση βατής περιοχής..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Διαμερισμός..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Δημιουργία περιγραμμάτων..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Δημιουργία πολύ-πλέγματος..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Μετατροπή σε εγγενή πλέγμα πλοήγησης..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Ρύθμιση γενήτριας πλέγματος πλοήγησης:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Ανάλυση γεωμετρίας..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Τέλος!"
@@ -14109,6 +14276,16 @@ msgstr ""
"Το πολύγωνο εμποδίου για αυτό το εμπόδιο είναι άδειο. Παρακαλούμε ζωγραφίστε "
"ένα πολύγωνο."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14374,13 +14551,11 @@ msgstr ""
"Οι προβολείς (SpotLight) με γωνία ευρύτερη των 90 μοιρών δεν μπορούν να "
"δημιουργήσουν σκιές."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Ένας πόρος πλέγματος πλοήγησης θα πρέπει να έχει ορισθεί ή δημιουργηθεί για "
-"να δουλέψει αυτός ο κόμβος."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14388,6 +14563,12 @@ msgstr ""
"Ένας κόμβος τύπου στιγμιοτύπου πλέγματος πλοήγησης πρέπει να κληρονομεί έναν "
"κόμβο τύπου πλοήγηση, διότι διαθέτει μόνο δεδομένα πλοήγησης."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14840,10 +15021,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Ανάθεση σε συνάρτηση."
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index 512f9ce725..f3aa813e83 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -1,6 +1,6 @@
# Esperanto translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Scott Starkey <yekrats@gmail.com>, 2019.
# AlexHoratio <yukithetupper@gmail.com>, 2019.
@@ -328,6 +328,10 @@ msgid "Duplicate Key(s)"
msgstr "Duobligi Ŝlosilo(j)n"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Forigi Ŝlosilo(j)n"
@@ -496,6 +500,11 @@ msgstr ""
"trako."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animado Skali Ŝlosilojn"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1479,6 +1488,10 @@ msgid "Invalid name."
msgstr "Malvalida nomo."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Validaj signoj:"
@@ -1584,7 +1597,9 @@ msgstr "Aktualigas la scenon..."
msgid "[empty]"
msgstr "[malplena]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ne konservis]"
@@ -1605,6 +1620,7 @@ msgstr "Krei dosierujon"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nomo:"
@@ -2100,7 +2116,8 @@ msgid "Properties"
msgstr "Atributoj"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "redifino:"
#: editor/editor_help.cpp
@@ -2241,6 +2258,20 @@ msgstr "Etosa atributo"
msgid "Property:"
msgstr "Atributo:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valoro)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2250,6 +2281,29 @@ msgstr "Agordis %s"
msgid "Set Multiple:"
msgstr "Agordi pluroblan:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Atributoj"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Atributoj"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Atributoj"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Eligo:"
@@ -3061,6 +3115,20 @@ msgstr ""
"la rula projekto."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sinkronigi ŝanĝojn en sceno"
@@ -4205,6 +4273,10 @@ msgstr "Trovi en dosierojn"
msgid "Find:"
msgstr "Trovi:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Anstataŭigo:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Dosierujo:"
@@ -4230,6 +4302,11 @@ msgstr "Trovi..."
msgid "Replace..."
msgstr "Anstataŭigi..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Anstataŭigi Ĉiujn"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Trovi: "
@@ -4239,8 +4316,9 @@ msgid "Replace: "
msgstr "Anstataŭigi: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Anstataŭigi ciujn (senrevene)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Anstataŭigi Ĉiujn"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4457,6 +4535,12 @@ msgid ""
msgstr ""
"AVERTO: Havaĵoj ekzistas ke uzis ĉi tiu risurcon, ili povas ĉesi ŝargi dece."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Ne eblas ŝargi risurcon."
@@ -5923,6 +6007,11 @@ msgstr "Alt-klavo+ŝovado: Movi"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt-klavo+ŝovado: Movi"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Forigi elektitan nodon aŭ transpason."
@@ -5954,6 +6043,10 @@ msgid "Scale Mode"
msgstr "Skalada reĝimo"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6050,20 +6143,44 @@ msgstr "Ŝlosi la elektitan objekton samloke (ne movebla)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Ŝlosi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Malŝlosi la elektitan objekton (movebla)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Malŝlosi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Certigu la infanojn de la objekto ne estas elekteblajn."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Grupigi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaŭras la elekteblecon de la infanoj de la objekto."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Malgrupigi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opcioj de ostaro"
@@ -7705,6 +7822,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Anstataŭigi..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kunteksta Helpo"
@@ -8241,6 +8363,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Rekomencigi al defaŭltoj"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformo"
@@ -8998,6 +9133,30 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Disponeblaj profiloj:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "La dosiernomo estas malplena."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Ĉu vi certe volas malfermi plurajn projektojn?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Agordi kapton"
@@ -9023,20 +9182,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nomo de nodo:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Ŝargi defaŭlton"
@@ -9054,6 +9199,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11456,10 +11605,6 @@ msgid "Batch Rename"
msgstr "Renomi staple"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Anstataŭigo:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefikso:"
@@ -11737,6 +11882,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Konservi novan scenon kiel..."
@@ -12693,63 +12852,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13716,6 +13880,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13922,16 +14096,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14328,10 +14508,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/es.po b/editor/translations/es.po
index 59abc8a5ad..156a3a5ec5 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -1,6 +1,6 @@
# Spanish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# 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, 2018.
@@ -391,6 +391,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Clave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Añadir %d Fotograma(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Eliminar Clave(s)"
@@ -563,6 +568,11 @@ msgstr ""
"única."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Escalar Claves de Animación"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1548,6 +1558,10 @@ msgid "Invalid name."
msgstr "Nombre inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1652,7 +1666,9 @@ msgstr "Actualizando escena..."
msgid "[empty]"
msgstr "[vacío]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[sin guardar]"
@@ -1673,6 +1689,7 @@ msgstr "Crear Carpeta"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nombre:"
@@ -2177,7 +2194,8 @@ msgid "Properties"
msgstr "Propiedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "anulación:"
#: editor/editor_help.cpp
@@ -2317,6 +2335,20 @@ msgstr "Propiedades del Theme"
msgid "Property:"
msgstr "Propiedad:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2326,6 +2358,29 @@ msgstr "Establecer %s"
msgid "Set Multiple:"
msgstr "Asignar Múltiples:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copiar Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Pegar Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Ruta del Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Salida:"
@@ -3149,6 +3204,20 @@ msgstr ""
"serán visibles en el proyecto en ejecución."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Cambios de Escena"
@@ -4282,6 +4351,10 @@ msgstr "Buscar en Archivos"
msgid "Find:"
msgstr "Buscar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Reemplazar:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Carpeta:"
@@ -4307,6 +4380,11 @@ msgstr "Buscar..."
msgid "Replace..."
msgstr "Reemplazar..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Reemplazar Todo"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Buscar: "
@@ -4316,8 +4394,9 @@ msgid "Replace: "
msgstr "Reemplazar: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Reemplazar todo (no se puede deshacer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Reemplazar Todo"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4538,6 +4617,12 @@ msgstr ""
"ADVERTENCIA: Existen assets que utilizan este recurso, pueden dejar de "
"cargarse correctamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Error al cargar el recurso."
@@ -6007,6 +6092,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Establecer la posición de pivote del nodo seleccionado."
@@ -6037,6 +6127,10 @@ msgid "Scale Mode"
msgstr "Modo de Escalado"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6134,20 +6228,44 @@ msgstr "Bloquear el objeto seleccionado en su sitio (no se puede mover)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bloqueo Seleccionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Desbloquear el objeto seleccionado (puede ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Desbloquear Seleccionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Asegura que los hijos del objeto no sean seleccionables."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaura la capacidad de selección de los hijos del objeto."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opciones de Esqueleto"
@@ -7798,6 +7916,11 @@ msgid "Find in Files..."
msgstr "Buscar en Archivos..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Reemplazar..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ayuda Contextual"
@@ -8322,6 +8445,19 @@ msgid "Toggle Freelook"
msgstr "Act./Desact. Vista Libre"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Restablecer Valores por Defecto"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformar"
@@ -9044,6 +9180,29 @@ msgid "Another Theme"
msgstr "Otro Theme"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Añadir Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfiles Disponibles:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "El nombre del archivo está vacío."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "¿Seguro que quieres abrir más de un proyecto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmar Cambio de Nombre del Elemento"
@@ -9069,18 +9228,6 @@ msgstr ""
"de este tipo."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Añadir Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Añadir Tipo de Elemento"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipo de nodo:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Por Defecto"
@@ -9099,6 +9246,10 @@ msgid "Override all default type items."
msgstr "Anular todos los elementos de tipo por defecto."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Añadir Tipo de Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Theme:"
@@ -11610,10 +11761,6 @@ msgid "Batch Rename"
msgstr "Renombrar por lote"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Reemplazar:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefijo:"
@@ -11908,6 +12055,20 @@ msgstr ""
"su lugar."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Guardar Nueva Escena Como..."
@@ -12874,63 +13035,70 @@ msgstr "Crear Solución"
msgid "End of inner exception stack trace"
msgstr "Fin del reporte de la pila de excepciones"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Se debe crear o establecer un recurso NavigationMesh para que este nodo "
+"funcione."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Calcular NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Limpiar la malla de navegación."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Estableciendo la configuración..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calculando tamaño la cuadrícula..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Creando campo de alturas..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcando triángulos transitables..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construyendo heightfield compacto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erosionando área transitable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Creando contornos..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Creando polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convertir a malla de navegación nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuración del Generador de Mallas de Navegación:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analizando geometría..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "¡Hecho!"
@@ -13988,6 +14156,16 @@ msgstr ""
"El polígono oclusor para este oclusor está vacío. Por favor, dibuja un "
"polígono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14247,13 +14425,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"Un SpotLight con un ángulo superior a 90 grados no puede proyectar sombras."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Se debe crear o establecer un recurso NavigationMesh para que este nodo "
-"funcione."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14261,6 +14437,12 @@ msgstr ""
"NavigationMeshInstance debe ser hijo o nieto de un nodo Navigation. Ya que "
"sólo proporciona los datos de navegación."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "No se ha establecido ninguna forma."
@@ -14746,12 +14928,6 @@ msgstr ""
"'vértice' o 'ligero'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"¡No se pudo acceder a la variación de la etapa de fragmento en la función "
-"personalizada!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Asignación a función."
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 0899d2422c..23020a7573 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -1,6 +1,6 @@
# Spanish (Argentina) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Diego López <diegodario21@gmail.com>, 2017.
# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2018, 2019, 2020, 2021.
@@ -337,6 +337,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Clave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Agregar %d Frame(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Eliminar Clave(s)"
@@ -507,6 +512,11 @@ msgstr ""
"única."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Escalar Keys de Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1493,6 +1503,10 @@ msgid "Invalid name."
msgstr "Nombre inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1597,7 +1611,9 @@ msgstr "Actualizando escena..."
msgid "[empty]"
msgstr "[vacío]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[sin guardar]"
@@ -1618,6 +1634,7 @@ msgstr "Crear Carpeta"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nombre:"
@@ -2119,7 +2136,8 @@ msgid "Properties"
msgstr "Propiedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "reemplazar(override):"
#: editor/editor_help.cpp
@@ -2259,6 +2277,20 @@ msgstr "Propiedades del Tema"
msgid "Property:"
msgstr "Propiedad:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2268,6 +2300,29 @@ msgstr "Asignar %s"
msgid "Set Multiple:"
msgstr "Asignar Múltiples:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copiar Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Pegar Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Ruta de Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Salida:"
@@ -3092,6 +3147,20 @@ msgstr ""
"serán visibles en el proyecto en ejecución."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Cambios de Escena"
@@ -4223,6 +4292,10 @@ msgstr "Buscar en archivos"
msgid "Find:"
msgstr "Buscar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Reemplazar:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Carpeta:"
@@ -4248,6 +4321,11 @@ msgstr "Encontrar..."
msgid "Replace..."
msgstr "Reemplazar..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Reemplazar Todo"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Encontrar: "
@@ -4257,8 +4335,9 @@ msgid "Replace: "
msgstr "Reemplazar: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Reemplazar todo (no se puede deshacer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Reemplazar Todo"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4480,6 +4559,12 @@ msgstr ""
"ADVERTENCIA: Existen elementos que utilizan este recurso, podrían dejar de "
"cargar correctamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Fallo al cargar recurso."
@@ -5948,6 +6033,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Establecer la posición de pivote del nodo seleccionado."
@@ -5978,6 +6068,10 @@ msgid "Scale Mode"
msgstr "Modo de Escalado"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6074,20 +6168,44 @@ msgstr "Bloquear el objeto seleccionado en su sitio (no se puede mover)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bloqueo Seleccionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Desbloquear el objeto seleccionado (puede ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Desbloquear Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Asegurarse que los hijos de un objeto no sean seleccionables."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaurar la habilidad de seleccionar los hijos de un objeto."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opciones de Esqueleto"
@@ -7733,6 +7851,11 @@ msgid "Find in Files..."
msgstr "Buscar en Archivos..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Reemplazar..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ayuda Contextual"
@@ -8257,6 +8380,19 @@ msgid "Toggle Freelook"
msgstr "Act./Desact. Vista Libre"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Restablecer a Valores Por Defecto"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transform"
@@ -8978,6 +9114,29 @@ msgid "Another Theme"
msgstr "Otro Theme"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Añadir Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfiles Disponibles:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "El nombre del archivo está vacío."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "¿Estás seguro/a que quieres abrir más de un proyecto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmar Cambio de Nombre del Elemento"
@@ -9003,18 +9162,6 @@ msgstr ""
"de este tipo."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Añadir Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Añadir Tipo de Elemento"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipos de Nodo:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Valores por Defecto"
@@ -9033,6 +9180,10 @@ msgid "Override all default type items."
msgstr "Anular todos los elementos de tipo por defecto."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Añadir Tipo de Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Theme:"
@@ -11544,10 +11695,6 @@ msgid "Batch Rename"
msgstr "Renombrar en Masa"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Reemplazar:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefijo:"
@@ -11842,6 +11989,20 @@ msgstr ""
"su lugar."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Guardar Nueva Escena Como..."
@@ -12807,63 +12968,69 @@ msgstr "Construir Solución"
msgid "End of inner exception stack trace"
msgstr "Fin del stack trace de excepción interna"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Se debe crear o setear un recurso NavigationMesh para que este nodo funcione."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Bake NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Restablecer mesh de navegación."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Seteando Configuración..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calculando tamaño de grilla..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Creando campo de alturas..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcando triangulos caminables..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construyendo campo de alturas compacto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erocionando area caminable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Creando contornos..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Creando polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convirtiendo a mesh de navegación nativo..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuración del Generador de Meshes de Navegación:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Parseando Geometría..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Hecho!"
@@ -13914,6 +14081,16 @@ msgstr ""
"El polígono oclusor para este oclusor está vacío. Por favor, dibujá un "
"polígono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14174,12 +14351,11 @@ msgstr ""
"Un SpotLight con un ángulo mas ancho que 90 grados no puede proyectar "
"sombras."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Se debe crear o setear un recurso NavigationMesh para que este nodo funcione."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14187,6 +14363,12 @@ msgstr ""
"NavigationMeshInstance debe ser un hijo o nieto de un nodo Navigation. Solo "
"provee datos de navegación."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "No se ha establecido ninguna forma."
@@ -14669,11 +14851,6 @@ msgstr ""
"reasignadas en 'vertex' o 'light'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"¡No se pudo acceder a la fragment-stage varying en la función personalizada!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Asignación a función."
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 43cb90beed..acb2a18bcf 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -1,6 +1,6 @@
# Estonian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Jens <arrkiin@gmail.com>, 2019.
# Mattias Aabmets <mattias.aabmets@gmail.com>, 2019.
@@ -322,6 +322,10 @@ msgid "Duplicate Key(s)"
msgstr "Paljunda võti (võtmed)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Kustuta võti (võtmed)"
@@ -490,6 +494,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1452,6 +1460,10 @@ msgid "Invalid name."
msgstr "Vigane nimi."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Kehtivad märgid:"
@@ -1557,7 +1569,9 @@ msgstr "Värskendan stseeni..."
msgid "[empty]"
msgstr "[tühi]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[salvestamata]"
@@ -1578,6 +1592,7 @@ msgstr "Loo kaust"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nimi:"
@@ -2082,8 +2097,9 @@ msgid "Properties"
msgstr "Atribuudid"
#: editor/editor_help.cpp
-msgid "override:"
-msgstr ""
+#, fuzzy
+msgid "overrides %s:"
+msgstr "Salvesta kõik"
#: editor/editor_help.cpp
msgid "default:"
@@ -2218,6 +2234,20 @@ msgstr "Teema atribuut"
msgid "Property:"
msgstr "Atribuut:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(väärtus)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2227,6 +2257,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Sea mitu:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Atribuudid"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Atribuudid"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopeeri sõlme tee"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Väljund:"
@@ -2981,6 +3034,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sünkroniseeri stseeni muudatused"
@@ -4053,6 +4120,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4076,6 +4147,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ava fail(id)"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4085,7 +4161,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4302,6 +4378,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5730,6 +5812,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5758,6 +5844,10 @@ msgid "Scale Mode"
msgstr "Skaleerimisrežiim"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5852,20 +5942,44 @@ msgstr "Lukusta valitud objekt praegusele kohale (seda ei saa liigutada)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Kustuta sõlm(ed)"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Kustuta sõlm(ed)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Kustuta sõlm(ed)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Kustuta sõlm(ed)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7471,6 +7585,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Salvesta fail kui..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontekstuaalne abi"
@@ -8003,6 +8122,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Laadi vaikimisi"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8743,40 +8875,48 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Tüüp"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Saadaolevad profiilid:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "Tüüp"
+msgid "Override Item"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Sõlme nimi:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8797,6 +8937,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11162,10 +11306,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11440,6 +11580,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Salvesta uus stseen kui..."
@@ -12375,63 +12529,68 @@ msgstr "Poolresolutioon"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13378,6 +13537,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13585,16 +13754,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13990,10 +14165,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Funktsiooni määramine."
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index 441210abba..4006cdc00d 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -1,6 +1,6 @@
# Basque translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Julen Irazoki <rktzbkr.julen@gmail.com>, 2019.
# Osoitz <oelkoro@gmail.com>, 2019, 2020.
@@ -322,6 +322,10 @@ msgid "Duplicate Key(s)"
msgstr "Bikoiztu Giltza(k)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ezabatu Giltza(k)"
@@ -492,6 +496,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1460,6 +1468,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1564,7 +1576,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1585,6 +1599,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2063,7 +2078,8 @@ msgid "Properties"
msgstr "Propietateak"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "gainidatzi:"
#: editor/editor_help.cpp
@@ -2199,6 +2215,20 @@ msgstr "Azalaren propietatea"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(balioa)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2208,6 +2238,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Propietateak"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Propietateak"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Propietateak"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2950,6 +3003,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4032,6 +4099,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4055,6 +4126,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ireki fitxategia(k)"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4064,7 +4140,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4282,6 +4358,12 @@ msgstr ""
"ABISUA: Baliabide hau darabiltzaten aktiboak daude, kargatzeari utzi "
"liezaiokete."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5707,6 +5789,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5735,6 +5821,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5829,20 +5919,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bikoiztu hautatutako gakoa(k)"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Bikoiztu hautatutako gakoa(k)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Bikoiztu hautatutako gakoa(k)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Bikoiztu hautatutako gakoa(k)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7448,6 +7562,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7965,6 +8083,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8703,6 +8833,27 @@ msgid "Another Theme"
msgstr "Inportatu azala"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Eskuragarri dauden profilak:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Confirm Item Rename"
msgstr "Konfiguratu atxikitzea"
@@ -8727,18 +8878,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Inportatu profila(k)"
@@ -8757,6 +8896,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Azala"
@@ -11119,10 +11262,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11397,6 +11536,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12329,63 +12482,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13330,6 +13488,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13536,16 +13704,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13941,10 +14115,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/extract.py b/editor/translations/extract.py
index 8702ac664c..2594629e5c 100755
--- a/editor/translations/extract.py
+++ b/editor/translations/extract.py
@@ -36,8 +36,8 @@ unique_loc = {}
ctx_group = {} # Store msgctx, msg, and locations.
main_po = """
# LANGUAGE translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index 60b6eb603a..cea2728671 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -1,6 +1,6 @@
# Persian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# alabd14313 <alabd14313@yahoo.com>, 2016.
# Dante Marshal <Marshal.Devilhunter@gmail.com>, 2018.
@@ -341,6 +341,10 @@ msgid "Duplicate Key(s)"
msgstr "تکرار کلید(ها)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "حذف کلید(key)"
@@ -508,6 +512,11 @@ msgid ""
msgstr "این گزینه برای اصلاح بِزیِر کار نمی کند, چون تنها یک مسیر واحد است."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "اندازه کلید های متحرک"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1498,6 +1507,10 @@ msgid "Invalid name."
msgstr "نام نامعتبر."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "کاراکترهای معتبر:"
@@ -1604,7 +1617,9 @@ msgstr "صحنه به روز می شود ..."
msgid "[empty]"
msgstr "[پوچ]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ذخیره نشده]"
@@ -1625,6 +1640,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "نام:"
@@ -2106,7 +2122,7 @@ msgid "Properties"
msgstr "خصوصیات"
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2242,6 +2258,20 @@ msgstr "ویژگی زمینه"
msgid "Property:"
msgstr "ویژگی:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(مقدار)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2251,6 +2281,29 @@ msgstr "تنظیم %s"
msgid "Set Multiple:"
msgstr "تعیین چندگانه:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "خصوصیات"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "خصوصیات"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "رونوشت مسیر گره"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "خروجی:"
@@ -2993,6 +3046,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4136,6 +4203,11 @@ msgstr "یافتن"
msgid "Find:"
msgstr "یافتن"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "جایگزینی"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4161,6 +4233,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "جایگزینی همه"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4173,7 +4250,7 @@ msgstr "جایگزینی"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "جایگزینی همه"
#: editor/find_in_files.cpp
@@ -4401,6 +4478,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5923,6 +6006,11 @@ msgstr "آیا پرونده‌های انتخاب شده حذف شود؟"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "آیا پرونده‌های انتخاب شده حذف شود؟"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "ترک انتخاب شده را حذف کن."
@@ -5952,6 +6040,10 @@ msgid "Scale Mode"
msgstr "انتخاب حالت"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6052,20 +6144,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "انتخاب شده را حذف کن"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "برداشتن انتخاب شده"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "برداشتن انتخاب شده"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "تنها در قسمت انتخاب شده"
@@ -7763,6 +7879,11 @@ msgid "Find in Files..."
msgstr "یافتن"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "یافتن"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8308,6 +8429,19 @@ msgid "Toggle Freelook"
msgstr "دید آزاد"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "بارگیری پیش فرض"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9101,6 +9235,30 @@ msgstr "عضوها"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "پیدا کردن نوع گره"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "نمایه‌های موجود:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "مسیر خالی است"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "آیا مطمئن هستید که می خواهید همه اتصالات را از این سیگنال حذف کنید؟"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "تغییر نام ترک انیمشین"
@@ -9125,21 +9283,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "پیدا کردن نوع گره"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "افزودن مورد"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "پیدا کردن نوع گره"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "بارگیری پیش فرض"
@@ -9157,6 +9300,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "افزودن مورد"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "عضوها"
@@ -11659,11 +11807,6 @@ msgid "Batch Rename"
msgstr "تغییر نام"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "جایگزینی"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11951,6 +12094,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12963,63 +13120,68 @@ msgstr "همه‌ی انتخاب ها"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "یک منبع NavigationMesh باید برای یک گره تنظیم یا ایجاد شود تا کار کند."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -14049,6 +14211,16 @@ msgstr "یک چندضلعی انسدادی باید تنظیم (یا ترسیم)
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "چندضلعی مسدود برای این مسدودکننده، خالی است. لطفا یک چندضلعی رسم کنید!"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14282,11 +14454,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "یک منبع NavigationMesh باید برای یک گره تنظیم یا ایجاد شود تا کار کند."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14294,6 +14466,12 @@ msgstr ""
"NavigationMeshInstance باید یک فرزند یا نوه‌ی یک گره Navigation باشد. این "
"تنها داده‌ی پیمایش را فراهم می‌کند."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14711,10 +14889,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index 83f743e4ea..f461bb0074 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -1,6 +1,6 @@
# Finnish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 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, 2018.
@@ -329,6 +329,11 @@ msgid "Duplicate Key(s)"
msgstr "Kahdenna avainruudut"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Lisää %d ruutua"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Poista avainruudut"
@@ -495,6 +500,11 @@ msgid ""
msgstr "Tämä valinta ei käy Bezier-editoinnille, koska se on vain yksi raita."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animaatio: Skaalaa avaimia"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1476,6 +1486,10 @@ msgid "Invalid name."
msgstr "Virheellinen nimi."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Kelvolliset merkit:"
@@ -1583,7 +1597,9 @@ msgstr "Päivitetään skeneä..."
msgid "[empty]"
msgstr "[tyhjä]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[tallentamaton]"
@@ -1604,6 +1620,7 @@ msgstr "Luo kansio"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nimi:"
@@ -2100,7 +2117,8 @@ msgid "Properties"
msgstr "Ominaisuudet"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "ylikirjoita:"
#: editor/editor_help.cpp
@@ -2240,6 +2258,20 @@ msgstr "Teeman ominaisuus"
msgid "Property:"
msgstr "Ominaisuus:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(arvo)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2249,6 +2281,29 @@ msgstr "Aseta %s"
msgid "Set Multiple:"
msgstr "Aseta useita:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Kopioi ominaisuudet"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Liitä ominaisuudet"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopioi skriptin polku"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Tuloste:"
@@ -3058,6 +3113,20 @@ msgstr ""
"ajettaessa."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Synkronoi skenen muutokset"
@@ -4178,6 +4247,10 @@ msgstr "Etsi tiedostoista"
msgid "Find:"
msgstr "Etsi:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Korvaa:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Kansio:"
@@ -4203,6 +4276,11 @@ msgstr "Etsi..."
msgid "Replace..."
msgstr "Korvaa..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Korvaa kaikki"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Etsi: "
@@ -4212,8 +4290,9 @@ msgid "Replace: "
msgstr "Korvaa: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Korvaa kaikki (ei voi perua)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Korvaa kaikki"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4437,6 +4516,12 @@ msgstr ""
"VAROITUS: Tällä resurssilla on sitä käyttäviä assetteja, ne voivat lakata "
"latautumasta kunnolla."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Resurssin lataaminen epäonnistui."
@@ -5899,6 +5984,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Vedä: Siirrä valittua solmua."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Vedä: Siirrä valittua solmua."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Aseta nykyisen solmun kääntökeskiön sijainti."
@@ -5929,6 +6019,10 @@ msgid "Scale Mode"
msgstr "Skaalaustila"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6025,20 +6119,44 @@ msgstr "Lukitse valitut objektit paikalleen (ei voi liikutella)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Lukitse valitut"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Poista valittujen objektien lukitus (voi liikutella)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Vapauta valitut"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Varmistaa, ettei objektin alisolmuja voi valita."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ryhmitä valitut"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Palauttaa objektin aliobjektien mahdollisuuden tulla valituksi."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Poista ryhmitys valituilta"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Luurangon asetukset"
@@ -7682,6 +7800,11 @@ msgid "Find in Files..."
msgstr "Etsi tiedostoista..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Korvaa..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Asiayhteydellinen ohje"
@@ -8206,6 +8329,19 @@ msgid "Toggle Freelook"
msgstr "Kytke liikkuminen päälle/pois"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Palauta oletusarvoihin"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Muunna"
@@ -8926,6 +9062,29 @@ msgid "Another Theme"
msgstr "Toinen teema"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Lisää tyyppi"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Saatavilla olevat profiilit:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Tiedostonimi on tyhjä."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Haluatko varmasti avata useamman kuin yhden projektin?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Vahvista osan uudelleen nimeäminen"
@@ -8950,18 +9109,6 @@ msgstr ""
"päivittää kaikkien muiden tämän tyyppisten tyylilaatikoiden ominaisuuksia."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Lisää tyyppi"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Lisää osan tyyppi"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Solmutyypit:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Näytä oletus"
@@ -8978,6 +9125,10 @@ msgid "Override all default type items."
msgstr "Ylikirjoita kaikki oletustyypin osat."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Lisää osan tyyppi"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Teema:"
@@ -11479,10 +11630,6 @@ msgid "Batch Rename"
msgstr "Niputettu uudelleennimeäminen"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Korvaa:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Etuliite:"
@@ -11776,6 +11923,20 @@ msgstr ""
"skeneilmentymästä Skene > Uusi periytetty skene... valikosta."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Tallenna uusi skene nimellä..."
@@ -12741,63 +12902,70 @@ msgstr "Muodosta ratkaisu"
msgid "End of inner exception stack trace"
msgstr "Sisemmän poikkeuksen kutsupinon loppu"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Tälle solmulle täytyy asettaa tai luoda NavigationMesh resurssi, jotta se "
+"toimisi."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Kehitä NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Tyhjennä navigointiverkko."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Luodaan konfiguraatiota..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Lasketaan ruudukon kokoa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Luodaan korkeuskenttää..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Merkitään kuljettavat kolmiot..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Rakennetaan tiivistä korkeuskenttää..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Syövytetään kuljettavaa aluetta..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Ositetaan..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Luodaan korkeuskäyriä..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Luodaan polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Muunnetaan alkuperäiseksi navigointiverkoksi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigointiverkon generaattorin asetukset:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Jäsentää geometriaa…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Valmis!"
@@ -13827,6 +13995,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Tämän peittäjän peittopolygoni on tyhjä. Ole hyvä ja piirrä polygoni."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14087,13 +14265,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"SpotLight, jonka kulma on suurempi kuin 90 astetta, ei voi heittää varjoja."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Tälle solmulle täytyy asettaa tai luoda NavigationMesh resurssi, jotta se "
-"toimisi."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14101,6 +14277,12 @@ msgstr ""
"NavigationMeshInstance solmun täytyy olla Navigation solmun alaisuudessa. Se "
"tarjoaa vain navigointidataa."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Mitään muotoa ei ole asetettu."
@@ -14579,11 +14761,6 @@ msgstr ""
"uudelleensijoittaa 'vertex' tai 'light' funktioissa."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Kuvapistevaiheen varying muuttujaa ei voitu käyttää mukautetussa funktiossa!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Sijoitus funktiolle."
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index 76daaee01e..3993213b38 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -1,6 +1,6 @@
# Filipino translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Marco Santos <enum.scima@gmail.com>, 2019.
# Amado Wilkins <epicalert68@gmail.com>, 2019.
@@ -328,6 +328,10 @@ msgid "Duplicate Key(s)"
msgstr "Kopyahin Ang (Mga) Key(s)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Tanggalin Ang (Mga) Key(s)"
@@ -491,6 +495,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1444,6 +1452,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1548,7 +1560,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1569,6 +1583,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2042,7 +2057,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2179,6 +2194,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Halaga:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2188,6 +2217,28 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Burahin ang (mga) Napiling Key"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Property Track"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2926,6 +2977,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3990,6 +4055,11 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Palitan"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4013,6 +4083,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Palitan ang Lahat"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4022,8 +4097,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Palitan ang Lahat"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4236,6 +4312,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5660,6 +5742,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5688,6 +5774,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5782,20 +5872,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "I-duplicate ang (mga) Napiling Key"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "I-duplicate ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "I-duplicate ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "I-duplicate ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7402,6 +7516,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Palitan ang Lahat"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7914,6 +8033,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8633,37 +8764,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8683,6 +8822,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11029,11 +11172,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Palitan"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11307,6 +11445,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12238,63 +12390,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13234,6 +13391,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13440,16 +13607,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13844,10 +14017,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index 9040b4b777..ae81d3dbdd 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -1,6 +1,6 @@
# French translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Antoine Carrier <ac.g392@gmail.com>, 2017-2018.
# ARocherVj <a.rocher.vj@gmail.com>, 2017.
@@ -69,7 +69,7 @@
# Sofiane <Sofiane-77@caramail.fr>, 2019, 2021.
# Camille Mohr-Daurat <pouleyketchoup@gmail.com>, 2019.
# Pierre Stempin <pierre.stempin@gmail.com>, 2019.
-# Pierre Caye <pierrecaye@laposte.net>, 2020, 2021.
+# Pierre Caye <pierrecaye@laposte.net>, 2020, 2021, 2022.
# Kevin Bouancheau <kevin.bouancheau@gmail.com>, 2020.
# LaurentOngaro <laurent@gameamea.com>, 2020.
# Julien Humbert <julroy67@gmail.com>, 2020.
@@ -90,8 +90,8 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-10 10:33+0000\n"
-"Last-Translator: Rémi Verschelde <akien@godotengine.org>\n"
+"PO-Revision-Date: 2022-01-03 03:55+0000\n"
+"Last-Translator: Pierre Caye <pierrecaye@laposte.net>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -99,7 +99,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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -402,6 +402,11 @@ msgid "Duplicate Key(s)"
msgstr "Dupliquer clé(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Ajouter %d Trame(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Supprimer clé(s)"
@@ -575,6 +580,11 @@ msgstr ""
"s’agit que d’une seule piste."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Mettre à l’échelle les clés d’animation"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1564,6 +1574,10 @@ msgid "Invalid name."
msgstr "Nom invalide."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caractères valides :"
@@ -1607,7 +1621,7 @@ msgstr "Supprimer l'AutoLoad"
#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
msgid "Enable"
-msgstr "Activer"
+msgstr "Enable"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
@@ -1672,7 +1686,9 @@ msgstr "Mise à jour de la scène…"
msgid "[empty]"
msgstr "[vide]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[non enregistré]"
@@ -1693,6 +1709,7 @@ msgstr "Créer un dossier"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nom :"
@@ -2195,7 +2212,8 @@ msgid "Properties"
msgstr "Propriétés"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "redéfinition :"
#: editor/editor_help.cpp
@@ -2335,6 +2353,20 @@ msgstr "Propriété du thème"
msgid "Property:"
msgstr "Propriété :"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valeur)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2344,6 +2376,29 @@ msgstr "Définir %s"
msgid "Set Multiple:"
msgstr "Définir plusieurs :"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copier les propriétés"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Coller les propriétés"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copier le chemin du script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Sortie :"
@@ -3175,6 +3230,20 @@ msgstr ""
"option est activée."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Synchroniser les modifications des scènes"
@@ -4306,6 +4375,10 @@ msgstr "Rechercher dans les fichiers"
msgid "Find:"
msgstr "Rechercher :"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Remplacer :"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Dossier :"
@@ -4331,6 +4404,11 @@ msgstr "Rechercher…"
msgid "Replace..."
msgstr "Remplacer…"
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Remplacer tout"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Rechercher : "
@@ -4340,8 +4418,9 @@ msgid "Replace: "
msgstr "Remplacer : "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Remplacer tout (pas de retour en arrière)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Remplacer tout"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4564,6 +4643,12 @@ msgstr ""
"AVERTISSEMENT : Il existe des atout qui utilisent cette ressource, elles "
"pourraient cesser de charger correctement."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Impossible de charger la ressource."
@@ -6035,6 +6120,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt + Glisser : Déplacer le nœud sélectionné."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt + Glisser : Déplacer le nœud sélectionné."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V : Définir la position du pivot pour le nœud sélectionné."
@@ -6065,6 +6155,10 @@ msgid "Scale Mode"
msgstr "Mode mise à l'échelle"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6161,20 +6255,44 @@ msgstr "Verrouiller l'objet sélectionné (il ne pourra plus être déplacé)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Verrouillage Sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Déverrouiller l'objet sélectionné (il pourra être déplacé de nouveau)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Déverrouillage Sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Rendre la sélection des enfants de l'objet impossible."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Groupe sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Rendre la sélection des enfants de l'objet de nouveau possible."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Dégrouper Sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Configuration du squelette"
@@ -7832,6 +7950,11 @@ msgid "Find in Files..."
msgstr "Rechercher dans les fichiers…"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Remplacer…"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Aide contextuelle"
@@ -8359,6 +8482,19 @@ msgid "Toggle Freelook"
msgstr "Basculer en vue libre"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Réinitialiser aux valeurs par défaut"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformation"
@@ -9089,6 +9225,29 @@ msgid "Another Theme"
msgstr "Autre thème"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Ajouter un type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profils disponibles :"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Le nom de fichier est vide."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Voulez-vous vraiment ouvrir plus d'un projet à la fois ?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmer le renommage d'item"
@@ -9114,18 +9273,6 @@ msgstr ""
"appartenant à ce type."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Ajouter un type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Ajouter un item de type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Types de nœud :"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Afficher par défaut"
@@ -9143,6 +9290,10 @@ msgid "Override all default type items."
msgstr "Surcharge tous les items de type par défaut."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Ajouter un item de type"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Thème :"
@@ -11666,10 +11817,6 @@ msgid "Batch Rename"
msgstr "Renommer par lot"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Remplacer :"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Préfixe :"
@@ -11964,6 +12111,20 @@ msgstr ""
"à la place."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Enregistrer la nouvelle scène sous…"
@@ -12931,63 +13092,70 @@ msgstr "Compiler la solution"
msgid "End of inner exception stack trace"
msgstr "Fin de la trace d'appel (stack trace) intrinsèque"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Une ressource de type NavigationMesh doit être définie ou créée pour que ce "
+"nœud fonctionne."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Calculer le NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Effacer le maillage de navigation."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Initialisation de la configuration..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calcul de la taille de la grille..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Création du champ de hauteur…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marquage des triangles parcourables..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construction d'un champ de hauteur compact..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Réduction de la zone parcourable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partitionnement..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Création des contours..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Création d'un maillage de contour…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Conversion en maillage de navigation natif…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Paramétrage du générateur de navigation dans la grille :"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analyse de la géométrie..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "C'est fait !"
@@ -14052,6 +14220,16 @@ msgstr ""
"Le polygone d'occultation pour cet occulteur est vide. Veuillez dessiner un "
"polygone."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14317,13 +14495,11 @@ msgstr ""
"Une SpotLight avec un angle supérieur à 90 degrés ne peut pas projeter "
"d'ombres."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Une ressource de type NavigationMesh doit être définie ou créée pour que ce "
-"nœud fonctionne."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14331,6 +14507,12 @@ msgstr ""
"Un NavigationMeshInstance doit être enfant ou sous-enfant d'un nœud de type "
"Navigation. Il fournit uniquement des données de navigation."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Aucune forme n'est définie."
@@ -14821,12 +15003,6 @@ msgstr ""
"réattribuées dans 'vertex' ou 'light'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"La varying de l'étape fragment n'a pas pu être accédée dans la fonction "
-"personnalisée !"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Affectation à la fonction."
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index b7b076d236..d0e6734463 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -1,6 +1,6 @@
# Irish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Rónán Quill <ronan085@gmail.com>, 2019, 2020.
msgid ""
@@ -319,6 +319,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -482,6 +486,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1436,6 +1444,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1540,7 +1552,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1561,6 +1575,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2034,7 +2049,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2170,6 +2185,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2179,6 +2207,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2918,6 +2966,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3976,6 +4038,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3999,6 +4065,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4008,7 +4078,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4224,6 +4294,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5648,6 +5724,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5676,6 +5756,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5770,20 +5854,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7384,6 +7488,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7897,6 +8005,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8613,37 +8733,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8663,6 +8791,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Amharc ar Chomhaid"
@@ -11009,10 +11141,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11285,6 +11413,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12217,63 +12359,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13212,6 +13359,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13418,16 +13575,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13822,10 +13985,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/gl.po b/editor/translations/gl.po
index e4339ad9aa..02e2a982b8 100644
--- a/editor/translations/gl.po
+++ b/editor/translations/gl.po
@@ -1,6 +1,6 @@
# Galician translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Andy Barcia <andybarcia4@gmail.com>, 2021.
@@ -322,6 +322,10 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Chave(s)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Eliminar Chave(s)"
@@ -490,6 +494,11 @@ msgstr ""
"Esta opción non funciona con edición Bezier, xa que é unha única pista."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Escalar Chaves de Animación"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1483,6 +1492,10 @@ msgid "Invalid name."
msgstr "Nome inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1589,7 +1602,9 @@ msgstr "Actualizando escena..."
msgid "[empty]"
msgstr "[baleiro]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[non gardado]"
@@ -1610,6 +1625,7 @@ msgstr "Crear Cartafol"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nome:"
@@ -2109,7 +2125,8 @@ msgid "Properties"
msgstr "Propiedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "sobrescribir:"
#: editor/editor_help.cpp
@@ -2253,6 +2270,20 @@ msgstr "Propiedade de Temas"
msgid "Property:"
msgstr "Propiedade:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2262,6 +2293,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Establecer Varios:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Ruta do Nodo"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Saída:"
@@ -3080,6 +3134,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Cambios na Escena"
@@ -4195,6 +4263,10 @@ msgstr "Buscar en Arquivos"
msgid "Find:"
msgstr "Buscar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Substituír:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Cartafol:"
@@ -4220,6 +4292,11 @@ msgstr "Buscar..."
msgid "Replace..."
msgstr "Substituír..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Substituír Todo"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Buscar: "
@@ -4229,8 +4306,9 @@ msgid "Replace: "
msgstr "Substituír: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Substituír todo (non se pode defacer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Substituír Todo"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4445,6 +4523,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Fallou a carga do Recurso."
@@ -5887,6 +5971,11 @@ msgstr "Alt+Arrastrar: Mover"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastrar: Mover"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "O nodo seleccionado non é unha Mini-Ventá (Viewport)!"
@@ -5918,6 +6007,10 @@ msgid "Scale Mode"
msgstr "Modo Escalado"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6014,20 +6107,44 @@ msgstr "Fixar o obxecto no sitio (non se poderá mover)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Eliminar Nodo(s)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Liberar o obxecto seleccionado (pode moverse)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Eliminar Nodo(s)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Asegúrase de que os fillos do obxecto non sexan seleccionables."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Selección"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Volve a permitir seleccionar os fillos do obxecto."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Selección"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7665,6 +7782,11 @@ msgid "Find in Files..."
msgstr "Buscar en Arquivos.."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Substituír..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Axuda Contextual"
@@ -8216,6 +8338,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Cargar Valores por Defecto"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformación"
@@ -8984,6 +9119,30 @@ msgstr "Importar Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfís Dispoñibles:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "O nome de arquivo está baleiro."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Está seguro de que quere abrir máis dun proxecto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Configurar Axuste de Cuadrícula"
@@ -9008,21 +9167,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Engadir Elemento"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Tipo de nodo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Cargar Valores por Defecto"
@@ -9041,6 +9185,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Engadir Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Tema"
@@ -11488,10 +11637,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Substituír:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefixo:"
@@ -11765,6 +11910,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12701,63 +12860,68 @@ msgstr "Resolución á Metade"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Feito!"
@@ -13737,6 +13901,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13967,16 +14141,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14399,10 +14579,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/he.po b/editor/translations/he.po
index 6220b3ec85..3c2ce4ff95 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -1,6 +1,6 @@
# Hebrew translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Daniel <lorddaniel09@gmail.com>, 2018.
# Ben Golan <golanben4@gmail.com>, 2017.
@@ -338,6 +338,10 @@ msgid "Duplicate Key(s)"
msgstr "שכפול מפתח(ות)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "מחיקת מפתח(ות)"
@@ -504,6 +508,11 @@ msgid ""
msgstr "אפשרות זו אינה פעילה לעריכת בזייה, כי זאת רק רצועה אחת."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "הנפשה - שנה גודל של רצועות מפתח"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1475,6 +1484,10 @@ msgid "Invalid name."
msgstr "שם שגוי."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "תווים תקפים:"
@@ -1579,7 +1592,9 @@ msgstr "הסצנה מתעדכנת…"
msgid "[empty]"
msgstr "[ריק]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[לא נשמר]"
@@ -1600,6 +1615,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "שם:"
@@ -2086,7 +2102,8 @@ msgid "Properties"
msgstr "מאפיינים"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "דריסה:"
#: editor/editor_help.cpp
@@ -2227,6 +2244,20 @@ msgstr "מאפיין ערכת עיצוב"
msgid "Property:"
msgstr "מאפיין:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(ערך)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2236,6 +2267,29 @@ msgstr "קביעת %s"
msgid "Set Multiple:"
msgstr "קביעה מרובה:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "מאפיינים"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "מאפיינים"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "העתקת נתיב הסקריפט"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "פלט:"
@@ -3022,6 +3076,20 @@ msgid ""
msgstr "רשתות ניווט ומצולעים יהיו גלויים בהרצת המשחק אם אפשרות זאת מופעלת."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "סנכרון השינויים בסצנה"
@@ -4157,6 +4225,11 @@ msgstr "איתור בקבצים"
msgid "Find:"
msgstr "איתור"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "להחליף "
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4181,6 +4254,11 @@ msgstr "איתור…"
msgid "Replace..."
msgstr "החלפה…"
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "להחליף הכול"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "איתור "
@@ -4191,7 +4269,7 @@ msgstr "להחליף "
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "להחליף הכול"
#: editor/find_in_files.cpp
@@ -4420,6 +4498,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "טעינת המשאב נכשלה."
@@ -5918,6 +6002,11 @@ msgstr "מחיקת המרובע שנבחר."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "מחיקת המרובע שנבחר."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "הסרת מפרק או מעברון שנבחרו."
@@ -5947,6 +6036,10 @@ msgid "Scale Mode"
msgstr "מצב שינוי קנה מידה (R)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6049,20 +6142,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "בחירת מיקוד"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "הסרת הבחירה"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "הסרת הבחירה"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "יחידני"
@@ -7738,6 +7855,11 @@ msgid "Find in Files..."
msgstr "איתור…"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "החלפה…"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "עזרה תלוית הקשר"
@@ -8290,6 +8412,19 @@ msgid "Toggle Freelook"
msgstr "החלפת מצב מבט חופשי"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "איפוס לברירת מחדל"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "התמרה"
@@ -9078,6 +9213,30 @@ msgstr "ייבוא ערכת עיצוב"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "סוג"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "פרופילים זמינים:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "שם הקובץ ריק."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "האם אתה בטוח שאתה רוצה להסיר את כל החיבורים מהאות הזה?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "הגדרת הצמדה"
@@ -9103,20 +9262,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "סוג"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "איתור סוג מפרק"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "טעינת בררת המחדל"
@@ -9134,6 +9279,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "שמירת ערכת העיצוב"
@@ -11611,11 +11760,6 @@ msgid "Batch Rename"
msgstr "שינוי שם"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "להחליף "
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11904,6 +12048,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "שמירת סצנה חדשה בשם…"
@@ -12862,63 +13020,68 @@ msgstr "מילוי הבחירה"
msgid "End of inner exception stack trace"
msgstr "סוף מחסנית מעקב לחריגה פנימית"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "יש להגדיר או ליצור משאב NavigationMesh כדי שצומת זה יפעל."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "אפיית NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ניקוי רשת הניווט."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "הגדרת תצורה..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "חישוב גודל רשת..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "יצירת שדה גובה..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "סימון משולשים הניתנים להליכה..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "בונה שדה גובה קומפקטי..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "שחיקת השטח הניתן להליכה..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "יצירת מחיצות..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "יצירת קווי מתאר..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "יצירת polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "המרה לרשת ניווט מקומית..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "הגדרת מחולל רשת ניווט:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "ניתוח גיאומטרי..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "בוצע!"
@@ -13926,6 +14089,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14167,11 +14340,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight עם זווית רחבה מ-90 מעלות אינו יכול להטיל צללים."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "יש להגדיר או ליצור משאב NavigationMesh כדי שצומת זה יפעל."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14179,6 +14352,12 @@ msgstr ""
"NavigationMeshInstance חייב להיות ילד או נכד למפרק Navigation. הוא מספק רק "
"נתוני ניווט."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14615,10 +14794,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "השמה לפונקציה."
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index ee434b6b24..29d59d3ee1 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -1,6 +1,6 @@
# Hindi translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Abhas Kumar Sinha <abhaskumarsinha@gmail.com>, 2017.
# Suryansh5545 <suryanshpathak5545@gmail.com>, 2018, 2020.
@@ -331,6 +331,10 @@ msgid "Duplicate Key(s)"
msgstr "डुप्लीकेट कुंजी (ओं)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "कुंजी को हटाएं"
@@ -499,6 +503,11 @@ msgid ""
msgstr "यह विकल्प बेज़ियर संपादन के लिए काम नहीं करता है, क्योंकि यह केवल एक ही ट्रैक है।"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "एनिमेटेड स्केल कुंजी"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1485,6 +1494,10 @@ msgid "Invalid name."
msgstr "अमान्य नाम."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "मान्य अक्षर:"
@@ -1590,7 +1603,9 @@ msgstr "सीन अपडेट कर रहा है..."
msgid "[empty]"
msgstr "[खाली]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[अनसेव्ड]"
@@ -1611,6 +1626,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "नाम:"
@@ -2107,7 +2123,8 @@ msgid "Properties"
msgstr "विशेषता"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "अधिभावी करता है:"
#: editor/editor_help.cpp
@@ -2247,6 +2264,20 @@ msgstr "थिम प्रोपर्टी"
msgid "Property:"
msgstr "प्रोपर्टी:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(मूल्य)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2256,6 +2287,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "अनेक सेट करे:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "विशेषता"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "विशेषता"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "विशेषता"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "परिणाम:"
@@ -3049,6 +3103,20 @@ msgstr ""
"देंगे।"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "दृश्य संशोधन सिंक्रनाइज़ करें"
@@ -4178,6 +4246,11 @@ msgstr "फ़ाइलों मे तलाशिये"
msgid "Find:"
msgstr "तलाशिये:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "बदले"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "फ़ोल्डर:"
@@ -4202,6 +4275,11 @@ msgstr "तलाशिये..."
msgid "Replace..."
msgstr "बदली करे..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "सबको बदली करें"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "तलाशिये: "
@@ -4211,8 +4289,9 @@ msgid "Replace: "
msgstr "बदली करे: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "सभी बदली करे (इसे अंडू नहीं किया जा सकता है)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "सबको बदली करें"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4428,6 +4507,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5859,6 +5944,11 @@ msgstr "चयनित फ़ाइलें हटाएं?"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "चयनित फ़ाइलें हटाएं?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "चयनित नोड या संक्रमण निकालें।"
@@ -5887,6 +5977,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5981,20 +6075,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "चयनित चाबी (फ़ाइलें) डुप्लिकेट"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "समूह चयनित"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "असमूह चयनित"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7634,6 +7752,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "बदली करे..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8155,6 +8278,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "प्रायिक लोड कीजिये"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8919,41 +9055,50 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "त्रिकोण जोड़ें"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "उपलब्ध प्रोफ़ाइल:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Override Item"
-msgstr "मौजूदा के ऊपर लिखे"
+msgid "Are you sure you want to create an empty type?"
+msgstr "क्या आप सुनिश्चित हैं कि आप इस सिग्नल से सभी कनेक्शन हटाना चाहते हैं?"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "त्रिकोण जोड़ें"
+msgid "Override Item"
+msgstr "मौजूदा के ऊपर लिखे"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "नोड का नाम:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8974,6 +9119,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "खोलो इसे"
@@ -11390,11 +11539,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "बदले"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11673,6 +11817,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12632,63 +12790,68 @@ msgstr "सभी खंड"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13664,6 +13827,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13872,16 +14045,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14281,10 +14460,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index 7dda3e5a1d..a5279a9099 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -1,6 +1,6 @@
# Croatian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Unlimited Creativity <marinosah1@gmail.com>, 2019.
# Patik <patrikfs5@gmail.com>, 2019.
@@ -321,6 +321,10 @@ msgid "Duplicate Key(s)"
msgstr "Duplicirani ključ(evi)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Obriši ključ(eve)"
@@ -485,6 +489,11 @@ msgstr ""
"Ova opcija ne radi za editiranje Beziera, zato što je samo jedna staza."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skaliraj Ključeve"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1455,6 +1464,10 @@ msgid "Invalid name."
msgstr "Nevažeće ime."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Važeći znakovi:"
@@ -1559,7 +1572,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1580,6 +1595,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2059,7 +2075,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2195,6 +2211,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(vrijednost)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2204,6 +2234,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Omogućena Svojstva:"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Omogućena Svojstva:"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Omogućena Svojstva:"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2943,6 +2996,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4010,6 +4077,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Zamijeni:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4033,6 +4104,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Zamijeni sve"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4042,8 +4118,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Zamijeni sve"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4262,6 +4339,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5686,6 +5769,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5714,6 +5801,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5808,20 +5899,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Duplikati Odabranih Ključeva"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Duplikati Odabranih Ključeva"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Duplikati Odabranih Ključeva"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Duplikati Odabranih Ključeva"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7433,6 +7548,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Zamijeni sve"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7949,6 +8069,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Učitaj Zadano"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8674,39 +8807,49 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
-msgstr ""
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Dostupni Profili:"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Naziv datoteke je prazan."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Jesi li siguran da želiš ukloniti sve veze s ovog signala?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Naziv Čvora(node):"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8726,6 +8869,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11086,10 +11233,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Zamijeni:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11363,6 +11506,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12297,63 +12454,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13297,6 +13459,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13503,16 +13675,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13908,10 +14086,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index c4d0d72376..722be28839 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -1,6 +1,6 @@
# Hungarian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Árpád Horváth <horvatha4@googlemail.com>, 2018.
# Nagy Lajos <neutron9707@gmail.com>, 2017.
@@ -21,13 +21,14 @@
# Frontrider <frontrider@tutanota.com>, 2021.
# Andras Virag <snowflake71@gmail.com>, 2021.
# balintmaci <balintmaci@gmail.com>, 2021.
+# Balázs Püspök-Kiss <pkblazsak@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-06 21:44+0000\n"
-"Last-Translator: balintmaci <balintmaci@gmail.com>\n"
+"PO-Revision-Date: 2021-12-23 15:30+0000\n"
+"Last-Translator: Balázs Püspök-Kiss <pkblazsak@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/hu/>\n"
"Language: hu\n"
@@ -35,7 +36,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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -338,6 +339,10 @@ msgid "Duplicate Key(s)"
msgstr "Kulcs(ok) Megkettőzése"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Kulcs(ok) Törlése"
@@ -509,6 +514,11 @@ msgstr ""
"Ez az opció nem működik Bezier szerkesztésre, mert ez csak egyetlen sáv."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animáció - Kulcsok Nyújtása"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1492,6 +1502,10 @@ msgid "Invalid name."
msgstr "Érvénytelen név."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Érvényes karakterek:"
@@ -1599,7 +1613,9 @@ msgstr "Scene frissítése..."
msgid "[empty]"
msgstr "[üres]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[nincs mentve]"
@@ -1620,6 +1636,7 @@ msgstr "Mappa Létrehozása"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Név:"
@@ -1764,7 +1781,7 @@ msgstr "Beépített hozzáférést ad a Csomagkönyvtárhoz."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Engedélyezi a Node hierarchia szerkesztését a Jelenet dokkban."
#: editor/editor_feature_profile.cpp
msgid ""
@@ -2122,7 +2139,8 @@ msgid "Properties"
msgstr "Tulajdonságok"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "felülírja:"
#: editor/editor_help.cpp
@@ -2266,6 +2284,20 @@ msgstr "Téma tulajdonság"
msgid "Property:"
msgstr "Tulajdonság:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(érték)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2275,6 +2307,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Többszörös beállítása:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Tulajdonságok"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Tulajdonságok"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Szkript Útvonal Másolása"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Kimenet:"
@@ -3095,6 +3150,20 @@ msgstr ""
"lesznek a játék futásakor."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Jelenet Változások Szinkronizálása"
@@ -4215,6 +4284,10 @@ msgstr "Keresés a fájlokban"
msgid "Find:"
msgstr "Keres:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Csere:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Mappa:"
@@ -4238,6 +4311,11 @@ msgstr "Keresés..."
msgid "Replace..."
msgstr "Csere..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Összes cseréje"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Keres: "
@@ -4247,8 +4325,9 @@ msgid "Replace: "
msgstr "Csere: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Összes lecserélése (nem visszavonható)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Összes cseréje"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4465,6 +4544,12 @@ msgstr ""
"FIGYELMEZTETÉS: Vannak olyan eszközök, amelyek ezt az erőforrást használják, "
"ezért leállíthatják a megfelelő betöltést."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nem sikerült betölteni az erőforrást."
@@ -5921,6 +6006,11 @@ msgstr "Alt + Húzás: Mozgatás"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt + Húzás: Mozgatás"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Kiválasztott node vagy átmenet eltávolítása."
@@ -5952,6 +6042,10 @@ msgid "Scale Mode"
msgstr "Méretezési mód"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6048,20 +6142,44 @@ msgstr "A kiválasztott objektum zárolása (nem lesz mozgatható)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Kijelölés zárolása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "A kiválasztott objektum feloldása (mozgatható lesz)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Kijelölés feloldása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Kiválaszthatatlanná teszi az objektum gyermekeit."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Kijelöltek csoportosítása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Újra kiválaszthatóvá teszi az objektum gyermekeit."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "kijelölt csoportok szétbontása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Csontváz beállítások"
@@ -7688,6 +7806,11 @@ msgid "Find in Files..."
msgstr "Keresés a fájlokban..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Csere..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontextusérzékeny Súgó"
@@ -8227,6 +8350,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Visszaállítás Alapértelmezettre"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8989,6 +9125,30 @@ msgstr "Téma Importálása"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Node típus keresése"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Elérhető profilok:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "A fájlnév üres."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Biztos, hogy egynél több projektet nyit meg?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Animáció nyomvonal átnevezés"
@@ -9014,21 +9174,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Node típus keresése"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Elem Hozzáadása"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Node típusa"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Alapértelmezett Betöltése"
@@ -9047,6 +9192,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Elem Hozzáadása"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Téma Mentése"
@@ -11407,10 +11557,6 @@ msgid "Batch Rename"
msgstr "Csoportos átnevezés"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Csere:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11687,6 +11833,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12625,63 +12785,68 @@ msgstr "Kijelölés kitöltése"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Navigációs háló törlése."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Konfiguráció beállítása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Rácsméret kiszámítása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Magasságmező létrehozása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Járható háromszögek megjelölése…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Kompakt magasságmező kiépítése…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Járható terület lepusztítása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionálás…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Kontúrok létrehozása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Polymesh létrehozása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Átkonvertálás natív navigációs hálóra…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigációs Háló Generátor Beállítás:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Geometria Elemzése…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Kész!"
@@ -13644,6 +13809,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13852,16 +14027,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14260,10 +14441,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/id.po b/editor/translations/id.po
index c72e39eebd..686536da75 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -1,6 +1,6 @@
# Indonesian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Abdul Aziz Muslim Alqudsy <abdul.aziz.muslim.alqudsy@gmail.com>, 2016.
# Andevid Dynmyn <doyan4forum@gmail.com>, 2016.
@@ -352,6 +352,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplikat Key"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Tambah %d Frame"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Hapus Key"
@@ -520,6 +525,11 @@ msgid ""
msgstr "Opsi ini tidak bisa untuk mengedit Bezier, karena hanya satu track."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Skala Kunci Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1501,6 +1511,10 @@ msgid "Invalid name."
msgstr "Nama tidak sah."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Karakter sah:"
@@ -1606,7 +1620,9 @@ msgstr "Memperbarui skena..."
msgid "[empty]"
msgstr "[kosong]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[belum disimpan]"
@@ -1627,6 +1643,7 @@ msgstr "Buat Folder"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nama:"
@@ -2124,7 +2141,8 @@ msgid "Properties"
msgstr "Properti"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "menimpa:"
#: editor/editor_help.cpp
@@ -2268,6 +2286,20 @@ msgstr "Properti Tema"
msgid "Property:"
msgstr "Properti:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(nilai)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2277,6 +2309,29 @@ msgstr "Setel %s"
msgid "Set Multiple:"
msgstr "Terapkan Bersamaan:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Salin Properti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Tempel Properti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Salin Lokasi Skrip"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Keluaran:"
@@ -3090,6 +3145,20 @@ msgstr ""
"Navigasi dan poligon akan terlihat saat game berjalan jika opsi ini aktif."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sinkronkan Perubahan Skena"
@@ -4206,6 +4275,10 @@ msgstr "Cari dalam Berkas"
msgid "Find:"
msgstr "Cari:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Ganti:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Direktori:"
@@ -4231,6 +4304,11 @@ msgstr "Cari..."
msgid "Replace..."
msgstr "Gantikan..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ganti Semua"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Cari: "
@@ -4240,8 +4318,9 @@ msgid "Replace: "
msgstr "Ganti: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Ganti Semua (tidak bisa dikembalikan)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Ganti Semua"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4457,6 +4536,12 @@ msgstr ""
"PERINGATAN: Ada aset-aset yang menggunakan resource ini, mereka mungkin akan "
"berhenti untuk termuat secara sempurna."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Gagal memuat resource."
@@ -5912,6 +5997,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Seret: Pindahkan node terpilih."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Seret: Pindahkan node terpilih."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Atur posisi pivot node terpilih."
@@ -5942,6 +6032,10 @@ msgid "Scale Mode"
msgstr "Mode Skala"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6038,20 +6132,44 @@ msgstr "Kunci objek terpilih di tempat (tidak dapat di pindah)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Kunci yang Dipilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Buka kunci objek terpilih (dapat di pindah)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Lepas Kunci yang Dipilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Pastikan anak-anak objek tidak dapat diseleksi."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Kelompokkan yang Dipilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Jadikan anak-anak object dapat di seleksi kembali."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Keluarkan yang dipilih dari Grup"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opsi Pertulangan"
@@ -7697,6 +7815,11 @@ msgid "Find in Files..."
msgstr "Cari Dalam Berkas..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Gantikan..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Bantuan Kontekstual"
@@ -8226,6 +8349,19 @@ msgid "Toggle Freelook"
msgstr "Aktifkan Mode Tampilan Bebas"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Reset ke Default"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformasi"
@@ -8982,6 +9118,30 @@ msgstr "Impor Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipe"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profil yang Tersedia:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Nama berkas kosong."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Apakah Anda yakin membuka lebih dari satu proyek?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Namai Kembali Trek Anim"
@@ -9007,20 +9167,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipe"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Tambah Item"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipe node:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Muat Default"
@@ -9038,6 +9184,11 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Tambah Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11565,10 +11716,6 @@ msgid "Batch Rename"
msgstr "Ubah Nama Massal"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Ganti:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Awalan:"
@@ -11850,6 +11997,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Simpan Skena Baru sebagai..."
@@ -12816,63 +12977,70 @@ msgstr "Isi Pilihan"
msgid "End of inner exception stack trace"
msgstr "Akhir dari inner exception stack trace"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Sebuah resource NavigationMesh harus diatur atau diciptakan supaya node ini "
+"bekerja."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Panggang NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Bersihkan mesh navigasi."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Menyiapkan Konfigurasi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Menghitung ukuran kisi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Membuat bidang ketinggian..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Segitiga penanda walkable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Membangun dataran tinggi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Mengikis area jalan..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Mempartisi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Membuat kontur..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Membuat polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Mengkonversi ke mesh navigasi native..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Pengaturan Generator Navigasi Mesh:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Mengurai Geometri..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Selesai!"
@@ -13902,6 +14070,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Polygon occluder untuk occluder ini kosong. Mohon gambar dulu sebuah poligon."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14161,13 +14339,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"SpotLight dengan sudut lebih dari 90 derajat tidak dapat memberikan bayangan."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Sebuah resource NavigationMesh harus diatur atau diciptakan supaya node ini "
-"bekerja."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14175,6 +14351,12 @@ msgstr ""
"NavigationMeshInstance harus menjadi child atau grandchild untuk sebuah node "
"Navigation. Ini hanya menyediakan data navigasi."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14630,10 +14812,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Penugasan ke fungsi."
diff --git a/editor/translations/is.po b/editor/translations/is.po
index 45656f16a8..99a2daa775 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -1,6 +1,6 @@
# Icelandic translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 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, 2018, 2020.
# Kaan Gül <qaantum@hotmail.com>, 2018.
@@ -339,6 +339,10 @@ msgid "Duplicate Key(s)"
msgstr "Tvíteknir lyklar"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Anim DELETE-lyklar"
@@ -510,6 +514,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Færa lykla af Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1471,6 +1480,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1575,7 +1588,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1596,6 +1611,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2072,7 +2088,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2208,6 +2224,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2217,6 +2246,28 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Fjarlægja val"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Tvíteknir lyklar"
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2959,6 +3010,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4024,6 +4089,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4047,6 +4116,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4056,7 +4129,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4273,6 +4346,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5720,6 +5799,11 @@ msgstr "Afrita val"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Afrita val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Fjarlægja val"
@@ -5748,6 +5832,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5842,20 +5930,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Anim DELETE-lyklar"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Afrita val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Fjarlægja val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Fjarlægja val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7468,6 +7580,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7981,6 +8097,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8712,39 +8840,47 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Anim bæta við lag"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Cancel Item Rename"
-msgstr "Endurnefning Anim track"
+msgid "Available Node-based types:"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Anim bæta við lag"
+msgid "Cancel Item Rename"
+msgstr "Endurnefning Anim track"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8764,6 +8900,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11152,10 +11292,6 @@ msgid "Batch Rename"
msgstr "Endurnefning Anim track"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11432,6 +11568,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12371,63 +12521,68 @@ msgstr "Allt úrvalið"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13375,6 +13530,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13581,16 +13746,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13985,10 +14156,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/it.po b/editor/translations/it.po
index 0f5d996449..18b4fe4bce 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -1,6 +1,6 @@
# Italian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Alessio Corridori <alessiocorridori@hotmail.com>, 2018.
# Dario Bonfanti <bonfi.96@hotmail.it>, 2016-2017.
@@ -59,17 +59,18 @@
# Alessandro Mandelli <mandelli.alessandro@ngi.it>, 2021.
# Jusef Azzolina <rosarioazzolina33@gmail.com>, 2021.
# Daniele Basso <tiziodcaio@gmail.com>, 2021.
-# Riteo Siuga <riteo@posteo.net>, 2021.
+# Riteo Siuga <riteo@posteo.net>, 2021, 2022.
# Luigi <luibass92@live.it>, 2021.
# Micky <micheledevita2@gmail.com>, 2021.
# Fabio Plos <altre0cose@gmail.com>, 2021.
# Theraloss <danilo.polani@gmail.com>, 2021.
+# Pietro Grungo <pietro.grungo@libero.it>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-19 08:43+0000\n"
+"PO-Revision-Date: 2022-01-06 01:53+0000\n"
"Last-Translator: Riteo Siuga <riteo@posteo.net>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
@@ -78,7 +79,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 4.9.1-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -380,6 +381,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplica i fotogrammi chiave selezionati"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Aggiungi %d frame"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Elimina i fotogrammi chiave selezionati"
@@ -553,6 +559,11 @@ msgstr ""
"si tratta di una singola traccia."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Scala delle chiavi d'animazione"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -682,7 +693,7 @@ msgstr "Crea traccia/e di rispristino"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr "Ottimizzatore anim."
+msgstr "Ottimizzatore animazioni"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
@@ -1386,7 +1397,6 @@ msgid "Toggle Audio Bus Mute"
msgstr "Commuta l'ammutolimento di un bus audio"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Toggle Audio Bus Bypass Effects"
msgstr "Commuta il bypass degli effetti del bus audio"
@@ -1538,6 +1548,10 @@ msgid "Invalid name."
msgstr "Nome non valido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caratteri validi:"
@@ -1644,7 +1658,9 @@ msgstr "Aggiornamento della scena..."
msgid "[empty]"
msgstr "[vuoto]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[non salvato]"
@@ -1665,6 +1681,7 @@ msgstr "Crea una cartella"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nome:"
@@ -1849,10 +1866,8 @@ msgstr ""
"annullato."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Profile must be a valid filename and must not contain '.'"
-msgstr ""
-"Il profilo deve essere un nome di file valido e non può contenere \".\""
+msgstr "Il profilo deve avere un nome valido e non può contenere \".\""
#: editor/editor_feature_profile.cpp
msgid "Profile with this name already exists."
@@ -1884,7 +1899,7 @@ msgstr "Proprietà delle classi:"
#: editor/editor_feature_profile.cpp
msgid "Main Features:"
-msgstr "Funzionalità Principali"
+msgstr "Funzionalità Principali:"
#: editor/editor_feature_profile.cpp
msgid "Nodes and Classes:"
@@ -1945,7 +1960,7 @@ msgstr "Configura il profilo selezionato:"
#: editor/editor_feature_profile.cpp
msgid "Extra Options:"
-msgstr "Opzioni Addizionali"
+msgstr "Opzioni aggiuntive:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
@@ -2170,7 +2185,8 @@ msgid "Properties"
msgstr "Proprietà"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "sovrascrivi:"
#: editor/editor_help.cpp
@@ -2186,9 +2202,8 @@ msgid "Theme Properties"
msgstr "Proprietà del tema"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Colore"
+msgstr "Colori"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constants"
@@ -2203,9 +2218,8 @@ msgid "Icons"
msgstr "Icone"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
-msgstr "Stile"
+msgstr "Stili"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2312,6 +2326,20 @@ msgstr "Proprietà del tema"
msgid "Property:"
msgstr "Proprietà:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valore)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2321,6 +2349,29 @@ msgstr "Imposta %s"
msgid "Set Multiple:"
msgstr "Imposta più valori:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copia Proprietà"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Incolla Proprietà"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copia il percorso dello script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -2643,7 +2694,7 @@ msgstr "Salvare le modifiche a \"%s\" prima di chiudere?"
#: editor/editor_node.cpp
msgid "%s no longer exists! Please specify a new save location."
-msgstr "%s non esiste più! Specificare una nuova posizione di salvataggio"
+msgstr "%s non esiste più! Specificare una nuova posizione di salvataggio."
#: editor/editor_node.cpp
msgid ""
@@ -2659,7 +2710,7 @@ msgid ""
"Scene tree dock."
msgstr ""
"È necessario un nodo principale per salvare la scena. Puoi aggiungerne uno "
-"nel pannello di scena"
+"nel pannello di scena."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2691,7 +2742,7 @@ msgstr "Scena attuale non salvata. Aprire comunque?"
#: editor/editor_node.cpp
msgid "Can't undo while mouse buttons are pressed."
-msgstr "Impossible annullare quando i bottoni del mouse sono premuti"
+msgstr "Impossibile tornare indietro mentre i tasti del mouse sono premuti."
#: editor/editor_node.cpp
msgid "Nothing to undo."
@@ -3144,6 +3195,20 @@ msgstr ""
"saranno visibili nel progetto in esecuzione."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizza i cambiamenti delle scene"
@@ -3261,7 +3326,6 @@ msgid "Support Godot Development"
msgstr "Supporta lo sviluppo di Godot"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Play the project."
msgstr "Esegui il progetto."
@@ -3311,7 +3375,6 @@ msgid "Update Continuously"
msgstr "Aggiorna continuamente"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update When Changed"
msgstr "Aggiorna quando modificata"
@@ -3340,10 +3403,9 @@ msgid "Don't Save"
msgstr "Non salvare"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Android build template is missing, please install relevant templates."
msgstr ""
-"Modello di costruzione di Android mancante, si prega di installare i modelli "
+"Il modello di costruzione di Android manca, si prega di installare i modelli "
"rilevanti."
#: editor/editor_node.cpp
@@ -3398,7 +3460,6 @@ msgid "Template Package"
msgstr "Pacchetto di modelli"
#: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Library"
msgstr "Esporta Libreria"
@@ -3481,9 +3542,8 @@ msgid "No sub-resources found."
msgstr "Nessuna sottorisorsa trovata."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Apre una lista di sottorisorse."
+msgstr "Apri una lista di sottorisorse."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3532,9 +3592,8 @@ msgid "Frame Time (ms)"
msgstr "Durata di un fotogramma (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Tempo medio (sec)"
+msgstr "Tempo medio (ms)"
#: editor/editor_profiler.cpp
#, fuzzy
@@ -3635,7 +3694,6 @@ msgid "Pick a Viewport"
msgstr "Selezionare una vista"
#: editor/editor_properties.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Selected node is not a Viewport!"
msgstr "Il nodo selezionato non è un Viewport!"
@@ -3673,7 +3731,6 @@ msgstr ""
"questa proprietà (%s)."
#: editor/editor_resource_picker.cpp
-#, fuzzy
msgid "Quick Load"
msgstr "Caricamento rapido"
@@ -3696,7 +3753,6 @@ msgid "Paste"
msgstr "Incolla"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "Converti in %s"
@@ -3724,9 +3780,8 @@ msgstr ""
"esistente come eseguibile."
#: editor/editor_run_script.cpp
-#, fuzzy
msgid "Write your logic in the _run() method."
-msgstr "Inserire la logica dello script nel metodo _run()."
+msgstr "Inserisci la logica dello script nel metodo _run()."
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
@@ -3749,10 +3804,9 @@ msgid "Did you forget the '_run' method?"
msgstr "Hai dimenticato il metodo \"_run\"?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Tenere premuto %s per arrotondare ai numeri interi. Tenere premuto Shift per "
+"Tieni premuto %s per arrotondare ai numeri interi. Tieni premuto Shift per "
"modifiche più precise."
#: editor/editor_sub_scene.cpp
@@ -3780,14 +3834,12 @@ msgid "Uninstall these templates."
msgstr "Disinstalla questi modelli."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "File \"%s\" assente."
+msgstr "Non ci sono mirror disponibili."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Recupero dei mirror, attendi..."
+msgstr "Recupero dei mirror..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
@@ -3798,23 +3850,20 @@ msgid "Error requesting URL:"
msgstr "Errore nella richiesta URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "Connessione al mirror in corso..."
+msgstr "Connessione al mirror..."
#: editor/export_template_manager.cpp
msgid "Can't resolve the requested address."
msgstr "Impossibile risolvere l'hostname."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Impossibile connettersi all'host."
+msgstr "Impossibile connettersi al mirror."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Nessuna risposta dall'host:"
+msgstr "Nessuna risposta dal mirror."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3984,9 +4033,8 @@ msgid "Uninstall templates for the current version."
msgstr "Disinstalla template dalla versione attuale."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Errore durante il download"
+msgstr "Scarica da:"
#: editor/export_template_manager.cpp
#, fuzzy
@@ -4304,6 +4352,10 @@ msgstr "Trova nei File"
msgid "Find:"
msgstr "Trova:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Sostituisci:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Cartella:"
@@ -4329,6 +4381,11 @@ msgstr "Trova..."
msgid "Replace..."
msgstr "Sostituisci..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Sostituisci tutti"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Trova: "
@@ -4339,8 +4396,8 @@ msgstr "Sostituisci: "
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
-msgstr "Sostituisci tutto (non annullabile)"
+msgid "Replace All (NO UNDO)"
+msgstr "Sostituisci tutti"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4561,6 +4618,12 @@ msgstr ""
"ATTENZIONE: Esistono dei contenuti che utilizzano questa risorsa, potrebbero "
"non essere più caricati correttamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Caricamento della risorsa fallito."
@@ -4885,9 +4948,8 @@ msgid "Blend:"
msgstr "Blend:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parametro Modificato"
+msgstr "Parametro modificato:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -6036,6 +6098,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Trascina: Muovi nodo selezionato."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Trascina: Muovi nodo selezionato."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Imposta il perno di rotazione del nodo selezionato."
@@ -6066,6 +6133,10 @@ msgid "Scale Mode"
msgstr "Modalità scala"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6179,20 +6250,44 @@ msgstr "Blocca l'oggetto selezionato sul posto (non può essere mosso)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Blocca selezionato(i)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Sblocca l'oggetto selezionato (può essere mosso)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Sblocca selezionato(i)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Accerta che I figli dell'oggetto non siano selezionabili."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Raggruppa Selezionato(i)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Ripristina l'abilità dei figli dell'oggetto di essere selezionati."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Rimuovi selezionato(i) dal gruppo"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opzioni Scheletro"
@@ -6650,9 +6745,8 @@ msgid "No mesh to debug."
msgstr "Nessuna mesh da debuggare."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "Il modello non ha UV su questo layer"
+msgstr "Il modello non ha UV sul layer %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -7408,14 +7502,12 @@ msgid "Flip Portals"
msgstr "Ribalta orizzontalmente"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Conteggio Punti Generati:"
+msgstr "Genera punti nella stanza"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Conteggio Punti Generati:"
+msgstr "Genera punti"
#: editor/plugins/room_manager_editor_plugin.cpp
#, fuzzy
@@ -7863,6 +7955,11 @@ msgid "Find in Files..."
msgstr "Trova nei file..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Sostituisci..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Aiuto contestuale"
@@ -8115,9 +8212,8 @@ msgid "Surface Changes:"
msgstr "Cambiamenti delle superfici:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Draw Calls"
+msgstr "Draw Calls:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Vertices:"
@@ -8396,6 +8492,19 @@ msgid "Toggle Freelook"
msgstr "Commuta la vista libera"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Ripristina le impostazioni predefinite"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Trasforma"
@@ -8841,9 +8950,8 @@ msgid "Importing items {n}/{n}"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Uscire dall'editor?"
+msgstr "Aggiornamento dell'editor"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8859,14 +8967,12 @@ msgid "With Data"
msgstr "Con i Dati"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Scegli un Nodo"
+msgstr "Seleziona dati in base al tipo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutti gli oggetti colorati visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
@@ -8877,9 +8983,8 @@ msgid "Deselect all visible color items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutti gli oggetti visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
@@ -8890,9 +8995,8 @@ msgid "Deselect all visible constant items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutti i font visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
@@ -8903,19 +9007,16 @@ msgid "Deselect all visible font items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutte le icone visibili."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutte le icone visibili ed i loro dati."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Deseleziona tutte le icone visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
@@ -8938,19 +9039,16 @@ msgstr ""
"peso della tua risorsa Tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Comprimi Tutto"
+msgstr "Comprimi tipologie."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Espandi Tutto"
+msgstr "Espandi tipologie."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Seleziona file template"
+msgstr "Seleziona tutti gli oggetti del tema."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select With Data"
@@ -9146,9 +9244,8 @@ msgid "Editor Theme"
msgstr "Modifica Tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Elimina risorsa"
+msgstr "Seleziona un'altra risorsa del tema:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9157,6 +9254,30 @@ msgstr "Importa tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profili disponibili:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Il nome del file è vuoto."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Sei sicuro di voler aprire più di un progetto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Traccia Anim Rinomina"
@@ -9181,21 +9302,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Aggiungi Elemento"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Tipo di nodo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Carica i predefiniti"
@@ -9213,6 +9319,11 @@ msgid "Override all default type items."
msgstr "Sovrascrivi tutti gli elementi predefiniti."
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Aggiungi Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -9280,9 +9391,8 @@ msgid "Checked Radio Item"
msgstr "Elemento Radio Controllato"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Chiamato Sep."
+msgstr "Chiamato Separatore"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -11583,7 +11693,7 @@ msgstr "Impostazioni Progetto (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr "Informazioni Generali"
+msgstr "Generale"
#: editor/project_settings_editor.cpp
msgid "Override For..."
@@ -11738,10 +11848,6 @@ msgid "Batch Rename"
msgstr "Rinomina in blocco"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Sostituisci:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefisso:"
@@ -12037,6 +12143,20 @@ msgstr ""
"Ereditata... ."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Salva Nuova Scena Come..."
@@ -13004,63 +13124,70 @@ msgstr "Crea Soluzione"
msgid "End of inner exception stack trace"
msgstr "Fine dell'analisi dell’eccezione interna dello stack"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"È necessario creare o impostare una risorsa NavigationMesh affinché questo "
+"nodo funzioni."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Prepara NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Cancella mesh di navigazione."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Impostando la Configurazione..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calcolando dimensioni griglia..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Creazione heightfield..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Segnando triangoli percorribili..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Costruendo heightfield compatto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erodendo area percorribile..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partizionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Creazione contorni..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Creando polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convertendo a Mesh di Navigazione nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Impostazioni Generatore Mesh di Navigazione:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Elaborazione Geometria..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Fatto!"
@@ -14119,6 +14246,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Il poligono per questo occluder è vuoto. Si prega di disegnare un poligono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14382,13 +14519,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"Un SpotLight con un angolo più ampio di 90 gradi non può proiettare ombre."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"È necessario creare o impostare una risorsa NavigationMesh affinché questo "
-"nodo funzioni."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14396,6 +14531,12 @@ msgstr ""
"NavigationMeshInstance deve essere un figlio o nipote di un nodo Navigation. "
"Fornisce solamente dati per la navigazione."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Nessuna forma è impostata."
@@ -14886,12 +15027,6 @@ msgstr ""
"riassegnate in \"vertex\" o \"light\"."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Non è stato possibile accedere a variabile in fase di Fragment nella "
-"funzione personalizzata!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Assegnazione alla funzione."
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 3002f2c2f4..5ed1e5c5fe 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -1,6 +1,6 @@
# Japanese translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# akirakido <achts.y@gmail.com>, 2016-2017, 2018, 2019.
# D_first <dntk.daisei@gmail.com>, 2017, 2018.
@@ -351,6 +351,11 @@ msgid "Duplicate Key(s)"
msgstr "キーを複製"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "%dフレームを追加"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "キーを削除"
@@ -519,6 +524,11 @@ msgid ""
msgstr "このオプションは単一トラックでのベジェ編集では機能しません。"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "アニメーションキーの拡縮"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1500,6 +1510,10 @@ msgid "Invalid name."
msgstr "無効な名前です。"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "有効な文字:"
@@ -1604,7 +1618,9 @@ msgstr "シーンを更新..."
msgid "[empty]"
msgstr "[空]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[未保存]"
@@ -1625,6 +1641,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "名前:"
@@ -2124,7 +2141,8 @@ msgid "Properties"
msgstr "プロパティ"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "上書き:"
#: editor/editor_help.cpp
@@ -2264,6 +2282,20 @@ msgstr "テーマプロパティ"
msgid "Property:"
msgstr "プロパティ:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(値)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2273,6 +2305,29 @@ msgstr "%s を設定"
msgid "Set Multiple:"
msgstr "複数設定:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "プロパティをコピー"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "プロパティを貼り付け"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "スクリプトのパスをコピー"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "出力:"
@@ -3085,6 +3140,20 @@ msgstr ""
"実行中にも表示されるようになります。"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "シーンの変更を同期"
@@ -4205,6 +4274,10 @@ msgstr "複数ファイル内を検索"
msgid "Find:"
msgstr "検索:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "置換:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "フォルダー:"
@@ -4229,6 +4302,11 @@ msgstr "検索..."
msgid "Replace..."
msgstr "置換..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "すべて置換"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "検索: "
@@ -4238,8 +4316,9 @@ msgid "Replace: "
msgstr "置換: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "すべて置換 (元に戻せません)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "すべて置換"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4459,6 +4538,12 @@ msgstr ""
"警告:このリソースを使用するアセットが存在するため、正しくロードされない可能性"
"があります。"
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "リソースの読み込みに失敗しました。"
@@ -5916,6 +6001,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+ドラッグ: 選択したノードを移動。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+ドラッグ: 選択したノードを移動。"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: 選択したノードのピボットの位置を設定する。"
@@ -5946,6 +6036,10 @@ msgid "Scale Mode"
msgstr "スケールモード"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6042,20 +6136,44 @@ msgstr "選択したオブジェクトの位置をロック (移動不可能に
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "選択対象をロック解除"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "オブジェクトの子を選択不可にする。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "選択対象をグループ化"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "オブジェクトの子を選択可能に戻す。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "選択対象をグループ解除"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "スケルトンのオプション"
@@ -7698,6 +7816,11 @@ msgid "Find in Files..."
msgstr "複数ファイル内を検索..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "置換..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "コンテキスト ヘルプ"
@@ -8221,6 +8344,19 @@ msgid "Toggle Freelook"
msgstr "フリールックのオン / オフ"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "デフォルトに戻す"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "トランスフォーム"
@@ -8942,6 +9078,29 @@ msgid "Another Theme"
msgstr "他のテーマ"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "タイプを追加"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "利用可能なプロファイル:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "ファイル名が空です。"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "複数のプロジェクトを開いてもよろしいですか?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "アイテム名変更の確認"
@@ -8966,18 +9125,6 @@ msgstr ""
"てのこのタイプのStyleBoxで同じプロパティが更新されます。"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "タイプを追加"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "アイテムのタイプを追加"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "ノードのタイプ:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "デフォルトの表示"
@@ -8995,6 +9142,10 @@ msgid "Override all default type items."
msgstr "すべてのデフォルトタイプのアイテムをオーバーライドする。"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "アイテムのタイプを追加"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "テーマ:"
@@ -11488,10 +11639,6 @@ msgid "Batch Rename"
msgstr "名前の一括変更"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "置換:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "接頭辞:"
@@ -11783,6 +11930,20 @@ msgstr ""
"をベースに シーン > 新しい継承シーン... から継承シーンを作成してください。"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "新規シーンに名前を付けて保存..."
@@ -12745,63 +12906,70 @@ msgstr "ソリューションをビルド"
msgid "End of inner exception stack trace"
msgstr "内部例外スタックトレースの終了"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"このノードを動かすために NavigationMesh リソースを設定または作成する必要があ"
+"ります。"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "NavMeshを焼き込む"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ナビゲーションメッシュの消去。"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "設定中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "グリッドサイズ計算中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "ハイトフィールド生成中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "移動可能なポリゴンを記録中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "ハイトフィールド圧縮中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "移動可能な領域を作成中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "分割中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "輪郭を作成しています..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "ポリメッシュを作成しています..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "ネイティブナビゲーションメッシュに変換しています..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "ナビゲーションメッシュ生成設定:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "ジオメトリを解析しています..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "完了!"
@@ -13828,6 +13996,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "この遮蔽用のオクルーダーポリゴンは空です。ポリゴンを描いてください。"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14089,13 +14267,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "90度を超える角度のスポットライトは、シャドウを投影できません。"
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"このノードを動かすために NavigationMesh リソースを設定または作成する必要があ"
-"ります。"
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14103,6 +14279,12 @@ msgstr ""
"NavigationMeshInstance は、ナビゲーションノードの子や孫である必要があります。"
"これはナビゲーションデータのみ提供します。"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "シェイプが設定されていません。"
@@ -14579,10 +14761,6 @@ msgstr ""
"とはできません。"
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "カスタム関数内でFragment-stageのVaryingにアクセスできませんでした!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "関数への割り当て。"
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index ae9919323a..09eea3dce4 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -1,6 +1,6 @@
# Georgian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Giorgi Beriashvili <giorgi.beriashvili@outlook.com>, 2018.
# George Dzavashvili <dzavashviligeorge@gmail.com>, 2018.
@@ -344,6 +344,10 @@ msgid "Duplicate Key(s)"
msgstr "ანიმაციის გასაღებების ასლის შექმნა"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "ანიმაციის გასაღებების წაშლა"
@@ -524,6 +528,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "ანიმ გასაღებების ზომის შეცვლა"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1530,6 +1539,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1634,7 +1647,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1655,6 +1670,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2142,7 +2158,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2287,6 +2303,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2296,6 +2325,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "ანიმაციის . პარამეტრები."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "ანიმაციის . პარამეტრები."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "ანიმაციის . პარამეტრები."
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -3044,6 +3096,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4128,6 +4194,11 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "ჩანაცვლება"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4151,6 +4222,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "ყველას ჩანაცვლება"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4162,7 +4238,7 @@ msgstr "ჩანაცვლება"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "ყველას ჩანაცვლება"
#: editor/find_in_files.cpp
@@ -4386,6 +4462,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5862,6 +5944,11 @@ msgstr "წავშალოთ მონიშნული ფაილებ
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "წავშალოთ მონიშნული ფაილები?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "მონიშნული თრექის წაშლა."
@@ -5891,6 +5978,10 @@ msgid "Scale Mode"
msgstr "მასშტაბის თანაფარდობა:"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5986,20 +6077,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "მონიშნული გასაღებ(ებ)ის ასლის შექმნა"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "მონიშვნის მოშორება"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "მონიშვნის მოშორება"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "მონიშნული მხოლოდ"
@@ -7651,6 +7766,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "ყველას ჩანაცვლება"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8175,6 +8295,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8924,6 +9056,29 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "ანიმაციის თრექის დამატება"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "ანიმაციის . პარამეტრები."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "ბუფერი ცარიელია"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "ანიმაციის თრექის გადარქმევა"
@@ -8947,19 +9102,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "ანიმაციის თრექის დამატება"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8976,6 +9118,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "გახსნილი"
@@ -11401,11 +11547,6 @@ msgid "Batch Rename"
msgstr "საქმის დამთხვევა"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "ჩანაცვლება"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11685,6 +11826,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12642,63 +12797,68 @@ msgstr "ყველა მონიშნვა"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13664,6 +13824,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13870,16 +14040,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14281,10 +14457,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/km.po b/editor/translations/km.po
index cd632079d6..570aace246 100644
--- a/editor/translations/km.po
+++ b/editor/translations/km.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Withuse <withuse@gmail.com>, 2021.
@@ -319,6 +319,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -481,6 +485,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1433,6 +1441,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1537,7 +1549,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1558,6 +1572,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2029,7 +2044,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2165,6 +2180,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2174,6 +2202,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2912,6 +2960,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3970,6 +4032,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3993,6 +4059,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4002,7 +4072,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4216,6 +4286,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5637,6 +5713,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5665,6 +5745,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5759,20 +5843,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Key(s) ដែលបានជ្រើសស្ទួន"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Key(s) ដែលបានជ្រើសស្ទួន"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Key(s) ដែលបានជ្រើសស្ទួន"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Key(s) ដែលបានជ្រើសស្ទួន"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7375,6 +7483,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7887,6 +7999,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8598,37 +8722,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8648,6 +8780,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10988,10 +11124,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11264,6 +11396,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12193,63 +12339,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13183,6 +13334,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13389,16 +13550,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13793,10 +13960,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index 2c7629a09a..674d0ab18c 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -1,6 +1,6 @@
# Korean translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Ch <ccwpc@hanmail.net>, 2017.
# paijai 송 (fivejobi) <xotjq237@gmail.com>, 2018.
@@ -346,6 +346,11 @@ msgid "Duplicate Key(s)"
msgstr "키 복제"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "프레임 %d개 추가"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "키 삭제"
@@ -515,6 +520,11 @@ msgstr ""
"이 설정은 단일 트랙에만 적용 가능하므로 베지어 편집에 사용할 수 없습니다."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "애니메이션 키 스케일"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1492,6 +1502,10 @@ msgid "Invalid name."
msgstr "올바르지 않은 이름입니다."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "올바른 문자:"
@@ -1596,7 +1610,9 @@ msgstr "씬 업데이트 중..."
msgid "[empty]"
msgstr "[비었음]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[저장되지 않음]"
@@ -1617,6 +1633,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "이름:"
@@ -2110,7 +2127,8 @@ msgid "Properties"
msgstr "속성"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "오버라이드:"
#: editor/editor_help.cpp
@@ -2251,6 +2269,20 @@ msgstr "테마 속성"
msgid "Property:"
msgstr "속성:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(값)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2260,6 +2292,29 @@ msgstr "Set %s"
msgid "Set Multiple:"
msgstr "다수 설정:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "속성 복사"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "속성 붙여넣기"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "스크립트 경로 복사"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "출력:"
@@ -3067,6 +3122,20 @@ msgstr ""
"이게 됩니다."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "씬 변경사항 동기화"
@@ -4176,6 +4245,10 @@ msgstr "파일에서 찾기"
msgid "Find:"
msgstr "찾기:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "바꾸기:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "폴더:"
@@ -4201,6 +4274,11 @@ msgstr "찾기..."
msgid "Replace..."
msgstr "바꾸기..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "모두 바꾸기"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "찾기: "
@@ -4210,8 +4288,9 @@ msgid "Replace: "
msgstr "바꾸기: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "모두 바꾸기 (되돌릴 수 없습니다)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "모두 바꾸기"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4430,6 +4509,12 @@ msgstr ""
"경고: 이 리소스를 사용하는 애셋이 있습니다. 정상적으로 불러오지 못할 수도 있"
"습니다."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "리소스 불러오기에 실패했습니다."
@@ -5880,6 +5965,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+드래그: 선택된 노드를 이동합니다."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+드래그: 선택된 노드를 이동합니다."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: 선택된 노드의 피벗 위치를 설정합니다."
@@ -5909,6 +5999,10 @@ msgid "Scale Mode"
msgstr "스케일 모드"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6005,20 +6099,44 @@ msgstr "선택된 오브젝트를 그 자리에 잠급니다 (움직일 수 없
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "선택 항목 잠금 풀기"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "오브젝트의 자식을 선택하지 않도록 합니다."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "선택 항목 묶기"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "오브젝트의 자식을 선택할 수 있도록 복원합니다."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "선택 항목 묶음 풀기"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "스켈레톤 설정"
@@ -7656,6 +7774,11 @@ msgid "Find in Files..."
msgstr "파일에서 찾기..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "바꾸기..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "상황에 맞는 도움말"
@@ -8177,6 +8300,19 @@ msgid "Toggle Freelook"
msgstr "자유 시점 토글"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "디폴트로 재설정"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "변형"
@@ -8896,6 +9032,29 @@ msgid "Another Theme"
msgstr "다른 테마"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "타입 추가"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "사용 가능한 프로필:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "파일 이름이 비었습니다."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "두 개 이상의 프로젝트를 여시겠습니까?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "항목 이름 바꾸기 확인"
@@ -8920,18 +9079,6 @@ msgstr ""
"일박스에서 같은 속성이 업데이트됩니다."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "타입 추가"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "항목 타입 추가"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "노드 타입:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "디폴트 보이기"
@@ -8948,6 +9095,10 @@ msgid "Override all default type items."
msgstr "모든 디폴트 타입 항목을 오버라이드합니다."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "항목 타입 추가"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "테마:"
@@ -11417,10 +11568,6 @@ msgid "Batch Rename"
msgstr "일괄 이름 바꾸기"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "바꾸기:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "접두사:"
@@ -11708,6 +11855,20 @@ msgstr ""
"씬...을 대신 사용하여 만들 수 있습니다."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "새 씬을 다른 이름으로 저장..."
@@ -12663,63 +12824,69 @@ msgstr "솔루션 빌드"
msgid "End of inner exception stack trace"
msgstr "내부 예외 스택 추적의 끝"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"이 노드가 작동하려면 NavigationMesh 리소스를 설정하거나 만들어야 합니다."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "NavMesh 굽기"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "내비게이션 메시를 지웁니다."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "구성 설정 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "그리드 크기 계산 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Heightfield 만드는 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "걷기 가능한 삼각형 표시 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "압축된 Heightfield를 구성 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "걷기 가능한 영역 계산 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "파티션 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "윤곽선 만드는 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Polymesh 만드는 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "네이티브 내비게이션 메시로 변환 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "내비게이션 메시 생성기 설정:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "지오메트리 분석 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "완료!"
@@ -13722,6 +13889,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Occluder 폴리곤이 비어있습니다. 폴리곤을 그려주세요."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13973,12 +14150,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight의 각도를 90도 이상으로 잡으면 그림자를 투영할 수 없습니다."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"이 노드가 작동하려면 NavigationMesh 리소스를 설정하거나 만들어야 합니다."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -13986,6 +14162,12 @@ msgstr ""
"NavigationMeshInstance는 Navigation 노드의 자식이나 손주에 있어야 합니다. 이"
"것은 내비게이션 데이터만 제공합니다."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "설정할 모양이 없습니다."
@@ -14453,10 +14635,6 @@ msgstr ""
"을 수 있습니다."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "커스텀 함수에서 Fragment-stage varying에 접근할 수 없습니다!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "함수에 대입."
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index 832b47a62a..c9ef760bbf 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -1,6 +1,6 @@
# Lithuanian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Ignas Kiela <ignaskiela@super.lt>, 2017.
# Kornelijus <kornelijus.github@gmail.com>, 2017, 2018.
@@ -332,6 +332,10 @@ msgid "Duplicate Key(s)"
msgstr "Kopijuoti raktažodį (-ius)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ištrinti raktažodį (-ius)"
@@ -500,6 +504,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1481,6 +1489,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1585,7 +1597,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1606,6 +1620,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Vardas:"
@@ -2100,7 +2115,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2242,6 +2257,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Naujas pavadinimas:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2251,6 +2280,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Animacija"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Animacija"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Animacija"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -3002,6 +3054,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4105,6 +4171,10 @@ msgstr "Filtrai..."
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4129,6 +4199,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Pakeisti Visus"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4138,8 +4213,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Pakeisti Visus"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4359,6 +4435,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5840,6 +5922,11 @@ msgstr "Panaikinti pasirinkimą"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Panaikinti pasirinkimą"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Panaikinti pasirinkimą"
@@ -5869,6 +5956,10 @@ msgid "Scale Mode"
msgstr "TimeScale Nodas"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5964,20 +6055,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Ištrinti Efektą"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Kopijuoti pasirinktą (-us) raktažodį (-žius)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Panaikinti pasirinkimą"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Panaikinti pasirinkimą"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7633,6 +7748,11 @@ msgid "Find in Files..."
msgstr "Filtrai..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Filtrai..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8150,6 +8270,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8904,41 +9036,49 @@ msgid "Another Theme"
msgstr "Redaguoti Filtrus"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Animacija: Pridėti Takelį"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Cancel Item Rename"
-msgstr "Animacija: Pervadinti Takelį"
+msgid "Available Node-based types:"
+msgstr "Animacija"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Animacija: Pridėti Takelį"
+msgid "Cancel Item Rename"
+msgstr "Animacija: Pervadinti Takelį"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Naujas pavadinimas:"
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
@@ -8957,6 +9097,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Redaguoti Filtrus"
@@ -11384,10 +11528,6 @@ msgid "Batch Rename"
msgstr "Animacija: Pervadinti Takelį"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11666,6 +11806,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12625,63 +12779,70 @@ msgstr "Visas Pasirinkimas"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"NavigationMesh resursas turi būti nustatytas ar sukurtas, kad šis Nodas "
+"veiktų."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13648,6 +13809,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13854,18 +14025,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"NavigationMesh resursas turi būti nustatytas ar sukurtas, kad šis Nodas "
-"veiktų."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14268,10 +14443,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index d3e6b22e5b..4bd1bae67d 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -1,6 +1,6 @@
# Latvian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Gustavs Porietis (pg829-) <porietisgustavs@gmail.com>, 2018.
# Martch Zagorski <martchzagorski@gmail.com>, 2018, 2020.
@@ -327,6 +327,10 @@ msgid "Duplicate Key(s)"
msgstr "Dublicēt atslēgvietnes"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Izdzēst atslēgvietnes"
@@ -493,6 +497,11 @@ msgid ""
msgstr "Šī iespēja nestrādā ar Bazjē rediģēšanu, jo tai ir tikai viens celiņš."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Mainīt Atslēgas Izmēru"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1476,6 +1485,10 @@ msgid "Invalid name."
msgstr "Nederīgs nosaukums."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Derīgie simboli:"
@@ -1582,7 +1595,9 @@ msgstr "Atjauno ainu...."
msgid "[empty]"
msgstr "[tukšs]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[nesaglabāts]"
@@ -1603,6 +1618,7 @@ msgstr "Izveidot mapi"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nosaukums:"
@@ -2098,7 +2114,8 @@ msgid "Properties"
msgstr "Iestatījumi"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "pārrakstīšana:"
#: editor/editor_help.cpp
@@ -2238,6 +2255,20 @@ msgstr "Motīva Mainīgais"
msgid "Property:"
msgstr "Parametrs:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(vērtība)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2247,6 +2278,29 @@ msgstr "Likt %s"
msgid "Set Multiple:"
msgstr "Uzlikt vairākus:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Kopēt iestatījumus"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Ielīmēt iestatījumus"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopēt mezgla ceļu"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Izeja:"
@@ -3020,6 +3074,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sinhronizēt ainas izmaiņas"
@@ -4087,6 +4155,10 @@ msgstr "Atrast Failos"
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Aizvietot:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4110,6 +4182,11 @@ msgstr "Meklēt..."
msgid "Replace..."
msgstr "Aizvietot..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Aizvietot visu"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4119,8 +4196,9 @@ msgid "Replace: "
msgstr "Aizvietot: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Aizvietot visu"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4333,6 +4411,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5754,6 +5838,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Bīdīt: Pārvietot izvēlēto mezglu."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Bīdīt: Pārvietot izvēlēto mezglu."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Uzlikt izvēlētā mezgla centra pozīciju."
@@ -5782,6 +5871,10 @@ msgid "Scale Mode"
msgstr "Mēroga Režīms"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5876,20 +5969,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Dzēst mezglu(s)"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Dzēst mezglu(s)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Grupa Izvēlēta"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Pārtraukt Izvēlētā Grupēšanu"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7490,6 +7607,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Aizvietot..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8002,6 +8124,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Atiestatīt uz noklusējumu"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8713,6 +8848,30 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Pievienot tipu"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Pieejamie Profili:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Faila Nosaukums nav definēts."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+"Vai esat drošs(ša), ka vēlaties noņemt visus savienojumus no šī signāla?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr ""
@@ -8735,18 +8894,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Pievienot tipu"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Rādīt noklusējumu"
@@ -8763,6 +8910,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Motīvs:"
@@ -11106,10 +11257,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Aizvietot:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11382,6 +11529,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Saglabāt jaunu ainu kā..."
@@ -12313,63 +12474,68 @@ msgstr "Būvēt risinājumu"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Darīts!"
@@ -13303,6 +13469,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13509,16 +13685,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13918,10 +14100,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index 832af7ceb1..535251ede2 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -1,6 +1,6 @@
# Māori translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# follower <follower@rancidbacon.com>, 2019.
msgid ""
@@ -311,6 +311,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -473,6 +477,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1425,6 +1433,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1529,7 +1541,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1550,6 +1564,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2021,7 +2036,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2157,6 +2172,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2166,6 +2194,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2904,6 +2952,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3961,6 +4023,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3984,6 +4050,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -3993,7 +4063,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4207,6 +4277,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5628,6 +5704,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5656,6 +5736,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5750,20 +5834,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7363,6 +7467,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7875,6 +7983,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8586,37 +8706,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8636,6 +8764,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10976,10 +11108,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11252,6 +11380,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12181,63 +12323,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13171,6 +13318,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13377,16 +13534,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13781,10 +13944,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/mk.po b/editor/translations/mk.po
index 4d3f8021a7..e1a6d054c8 100644
--- a/editor/translations/mk.po
+++ b/editor/translations/mk.po
@@ -1,6 +1,6 @@
# Macedonian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Kristijan Fremen Velkovski <me@krisfremen.com>, 2021.
@@ -319,6 +319,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -481,6 +485,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1433,6 +1441,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1537,7 +1549,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1558,6 +1572,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2030,7 +2045,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2166,6 +2181,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2175,6 +2203,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Својства на анимацијата."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Својства на анимацијата."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Својства на анимацијата."
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2913,6 +2964,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3971,6 +4036,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3994,6 +4063,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4003,7 +4076,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4217,6 +4290,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5641,6 +5720,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5669,6 +5752,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5763,20 +5850,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Дуплирај избран(и) клуч(еви)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Дуплирај избран(и) клуч(еви)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Дуплирај избран(и) клуч(еви)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7379,6 +7490,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7891,6 +8006,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8602,37 +8729,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8652,6 +8787,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10992,10 +11131,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11268,6 +11403,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12197,63 +12346,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13187,6 +13341,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13393,16 +13557,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13797,10 +13967,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index e6c50a3d78..50770a8962 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -1,6 +1,6 @@
# Malayalam translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# christy james <jkuttu@gmail.com>, 2018.
# Lakshmi-Jayakumar <lakshmi.jayakumar.tkm@gmail.com>, 2019.
@@ -321,6 +321,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -485,6 +489,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1438,6 +1446,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1542,7 +1554,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1563,6 +1577,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2034,7 +2049,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2172,6 +2187,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "വില:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2181,6 +2210,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "ഗുണം നോക്കുക"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "ഗുണം നോക്കുക"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "ഗുണം നോക്കുക"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2919,6 +2971,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3977,6 +4043,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4000,6 +4070,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4009,7 +4083,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4223,6 +4297,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5648,6 +5728,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5676,6 +5760,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5770,20 +5858,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "സൂചികകളുടെ പകർപ്പെടുക്കുക"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "സൂചികകളുടെ പകർപ്പെടുക്കുക"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "സൂചികകളുടെ പകർപ്പെടുക്കുക"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7387,6 +7499,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7899,6 +8015,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8610,37 +8738,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8660,6 +8796,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11001,10 +11141,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11277,6 +11413,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12206,63 +12356,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13198,6 +13353,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13404,16 +13569,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13808,10 +13979,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index 99f6fdcf33..6a5005167a 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -1,6 +1,6 @@
# Marathi translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Prachi Joshi <josprachi@yahoo.com>, 2019, 2020.
# Shirious <sad3119823@gmail.com>, 2020.
@@ -318,6 +318,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -481,6 +485,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1433,6 +1441,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1537,7 +1549,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1558,6 +1572,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2029,7 +2044,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2165,6 +2180,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(किंमत)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2174,6 +2203,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2912,6 +2961,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3970,6 +4033,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3993,6 +4060,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4002,7 +4073,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4216,6 +4287,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5639,6 +5716,11 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "निवडलेले नोड किंवा संक्रमण काढा."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "निवडलेले नोड किंवा संक्रमण काढा."
@@ -5667,6 +5749,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5761,20 +5847,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7376,6 +7482,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7889,6 +7999,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8601,38 +8723,46 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "नोड जोडा"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "नोड जोडा"
+msgid "Cancel Item Rename"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8652,6 +8782,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10994,10 +11128,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11270,6 +11400,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12199,63 +12343,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13190,6 +13339,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13396,16 +13555,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13800,10 +13965,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index c44ed5566a..4909f7f9b1 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -1,6 +1,6 @@
# Malay translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Sam Vanguard <syafz119@gmail.com>, 2018.
# Shaqir Rafiq <moshamoradev@gmail.com>, 2018.
@@ -327,6 +327,10 @@ msgid "Duplicate Key(s)"
msgstr "Menduakan Kunci"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Padam Kunci"
@@ -495,6 +499,11 @@ msgstr ""
"trek."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Kunci Skala Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1479,6 +1488,10 @@ msgid "Invalid name."
msgstr "Nama tidak sah."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Watak yang sah:"
@@ -1584,7 +1597,9 @@ msgstr "Mengemaskini adegan..."
msgid "[empty]"
msgstr "[kosong]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[tidak disimpan]"
@@ -1605,6 +1620,7 @@ msgstr "Cipta Folder"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nama:"
@@ -2105,7 +2121,8 @@ msgid "Properties"
msgstr "Sifat-sifat"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "ganti:"
#: editor/editor_help.cpp
@@ -2245,6 +2262,20 @@ msgstr "Sifat Tema"
msgid "Property:"
msgstr "Sifat:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(nilai)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2254,6 +2285,29 @@ msgstr "Tetapkan %s"
msgid "Set Multiple:"
msgstr "Tetapkan Pelbagai:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Sifat-sifat"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Sifat-sifat"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Sifat-sifat"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Keluaran:"
@@ -3071,6 +3125,20 @@ msgstr ""
"dapat dilihat dalam projek yang sedang berjalan."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Segerakkan Perubahan Adegan"
@@ -4211,6 +4279,10 @@ msgstr "Cari dalam Fail-fail"
msgid "Find:"
msgstr "Cari:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Ganti:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Folder:"
@@ -4236,6 +4308,11 @@ msgstr "Cari..."
msgid "Replace..."
msgstr "Ganti..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ganti Semua"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Cari: "
@@ -4245,8 +4322,9 @@ msgid "Replace: "
msgstr "Ganti: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Ganti semua (tiada buat asal)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Ganti Semua"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4463,6 +4541,12 @@ msgstr ""
"AMARAN: Terdapat aset-aset yang menggunakan sumber ini, mereka mungkin "
"berhenti memuat dengan betul."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Gagal untuk memuatkan sumber."
@@ -5910,6 +5994,11 @@ msgstr "Padam Rect yang dipilih."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Padam Rect yang dipilih."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Node yang dipilih bukan Viewport!"
@@ -5938,6 +6027,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6032,20 +6125,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Semua Pilihan"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Gandakan Kunci Terpilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Semua Pilihan"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Semua Pilihan"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7661,6 +7778,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Ganti..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8184,6 +8306,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Set Semula ke Lalai"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8937,6 +9072,31 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Type"
+msgstr "Tambah Segi Tiga"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profil yang ada:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Papan klip kosong!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+"Adakah anda pasti anda mahu mengeluarkan semua sambungan dari isyarat ini?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr ""
@@ -8962,20 +9122,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tambah Segi Tiga"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nama Nod:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Muatkan Lalai"
@@ -8993,6 +9139,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11363,10 +11513,6 @@ msgid "Batch Rename"
msgstr "Namakan Semula Kumpulan"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Ganti:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11640,6 +11786,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12579,63 +12739,68 @@ msgstr "Semua Pilihan"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13593,6 +13758,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13799,16 +13974,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14203,10 +14384,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 498aa106eb..2aab12820b 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -1,6 +1,6 @@
# Norwegian Bokmål translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Allan Nordhøy <epost@anotheragency.no>, 2017-2018, 2019, 2020, 2021.
# Anonymous <GentleSaucepan@protonmail.com>, 2017, 2021.
@@ -25,8 +25,8 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-03 13:15+0000\n"
-"Last-Translator: Daniel Skogly <daniel@klungo.no>\n"
+"PO-Revision-Date: 2021-12-26 17:18+0000\n"
+"Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/godot-"
"engine/godot/nb_NO/>\n"
"Language: nb\n"
@@ -34,7 +34,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 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -337,6 +337,10 @@ msgid "Duplicate Key(s)"
msgstr "Dupliser Nøkler"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Fjern Nøkler"
@@ -507,6 +511,11 @@ msgstr ""
"Dette valget virker ikke på Bézier-redigering, da det kun er ett enkelt spor."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skalér Nøkler"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -882,7 +891,7 @@ msgstr "Engangs"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Kobler fra signalet etter dets første utsending."
#: editor/connections_dialog.cpp
#, fuzzy
@@ -1524,6 +1533,10 @@ msgid "Invalid name."
msgstr "Ugyldig navn."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Gyldige karakterer:"
@@ -1636,7 +1649,9 @@ msgstr "Oppdaterer scene..."
msgid "[empty]"
msgstr "[blank]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ulagret]"
@@ -1658,6 +1673,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Navn:"
@@ -2184,7 +2200,7 @@ msgstr "Egenskaper"
#: editor/editor_help.cpp
#, fuzzy
-msgid "override:"
+msgid "overrides %s:"
msgstr "Overskriv"
#: editor/editor_help.cpp
@@ -2345,6 +2361,20 @@ msgstr "Egenskaper"
msgid "Property:"
msgstr "Egenskap:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Verdi:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2354,6 +2384,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Sett mange:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Egenskaper"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Egenskaper"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopier Skript-Sti"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -3075,7 +3128,7 @@ msgstr "Sett opp versjonskontroll"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
-msgstr ""
+msgstr "Steng ned versjonskontroll"
#: editor/editor_node.cpp
#, fuzzy
@@ -3175,6 +3228,20 @@ msgstr ""
"denne innstillingen er aktivert."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Synkroniser Sceneendringer"
@@ -3663,7 +3730,7 @@ msgstr ""
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr ""
+msgstr "Velg visningsvindu"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
@@ -4155,6 +4222,11 @@ msgid ""
"\n"
"Do you wish to overwrite them?"
msgstr ""
+"Disse filene eller mappene er i konflikt med oppføringene i målstedet «%s»:\n"
+"\n"
+"%s\n"
+"\n"
+"Ønsker du å overskrive dem?"
#: editor/filesystem_dock.cpp
msgid "Renaming file:"
@@ -4351,6 +4423,10 @@ msgstr "Finn i Filer"
msgid "Find:"
msgstr "Finn"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Erstatt:"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4376,6 +4452,11 @@ msgstr "Finn..."
msgid "Replace..."
msgstr "Erstatt..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Erstatt Alle"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Finn: "
@@ -4386,7 +4467,7 @@ msgstr "Erstatt: "
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Erstatt Alle"
#: editor/find_in_files.cpp
@@ -4620,6 +4701,12 @@ msgstr ""
"ADVARSEL: ___ eksister som bruker denne ressursen, det kan hende de ikke "
"laster inn riktig."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Kunne ikke laste ressurs."
@@ -6182,6 +6269,11 @@ msgstr "Alt+Dra: Flytt"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Dra: Flytt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Fjern valgt spor."
@@ -6213,6 +6305,10 @@ msgid "Scale Mode"
msgstr "Skaler Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid ""
@@ -6321,20 +6417,44 @@ msgstr "Lås fast det valgte objektet (kan ikke flyttes)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Slett Valgte"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Lås opp det valgte objektet (kan flyttes)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Slett Valgte"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Vær sikker at objektets barn ikke er valgbar."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Fjern Utvalg"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Gjenopprett objektets barn sin mulighet for å bli valgt."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Fjern Utvalg"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Singleton"
@@ -8038,6 +8158,11 @@ msgid "Find in Files..."
msgstr "Filtrer Filer..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Erstatt..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8288,9 +8413,8 @@ msgid "Yaw:"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Størrelse: "
+msgstr "Størrelse:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn:"
@@ -8588,6 +8712,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Last Standard"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9054,9 +9191,8 @@ msgid "Importing items {n}/{n}"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Avslutt redigeringsverktøyet?"
+msgstr "Oppdaterer redigeringsverktøyet"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9373,6 +9509,30 @@ msgstr "Importer Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Finn Node Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Tilgjengelige Noder:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Filnavnet er tomt."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Er du sikker på at du vil åpne mer enn ett prosjekt?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim-Spor Endre Navn"
@@ -9398,21 +9558,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Finn Node Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Legg til Element"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Finn Node Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Last Standard"
@@ -9431,6 +9576,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Legg til Element"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Tema"
@@ -11400,14 +11550,12 @@ msgid "Are you sure to run %d projects at once?"
msgstr "Er du sikker på at du vil kjøre mer enn ett prosjekt?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "Velg enhet fra listen"
+msgstr "Fjern %d prosjekter fra listen?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Velg enhet fra listen"
+msgstr "Fjern dette prosjektet fra listen?"
#: editor/project_manager.cpp
msgid ""
@@ -11938,10 +12086,6 @@ msgid "Batch Rename"
msgstr "Endre Navn på Parti"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Erstatt:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12228,6 +12372,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -13229,63 +13387,68 @@ msgstr "Alle valg"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Regner ut rutenettstørrelse…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partisjonerer..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Lager konturer..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Ferdig!"
@@ -13977,9 +14140,8 @@ msgid ""
msgstr ""
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr "Kunne ikke endre project.godot i projsektstien."
+msgstr "Klarte ikke eksportere prosjektfiler til gradle-prosjekt\n"
#: platform/android/export/export_plugin.cpp
#, fuzzy
@@ -14295,6 +14457,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14462,6 +14634,8 @@ msgid ""
"Plane shapes don't work well and will be removed in future versions. Please "
"don't use them."
msgstr ""
+"Flate former virker ikke så bra og vil bli fjernet i fremtidige versjoner. "
+"Veldig fint om de ikke brukes."
#: scene/3d/collision_shape.cpp
msgid ""
@@ -14503,16 +14677,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14914,10 +15094,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 4dee14141b..9574536fb7 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -1,6 +1,6 @@
# Dutch translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 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.
@@ -52,13 +52,14 @@
# Edgar <Edgar@anotherfoxguy.com>, 2021.
# Daan van Luijk <daanvl@outlook.be>, 2021.
# Dani Verschoor <daniverschoor@outlook.com>, 2021.
+# naan <xlightfox@hotmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-20 22:07+0000\n"
-"Last-Translator: Dani Verschoor <daniverschoor@outlook.com>\n"
+"PO-Revision-Date: 2021-12-31 08:52+0000\n"
+"Last-Translator: naan <xlightfox@hotmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
"Language: nl\n"
@@ -66,7 +67,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 4.9.1\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -370,6 +371,11 @@ msgid "Duplicate Key(s)"
msgstr "Sleutel(s) dupliceren"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Voeg %d Frame(s) toe"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Sleutel(s) verwijderen"
@@ -538,6 +544,11 @@ msgstr ""
"aanwezig is."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Schaal Keys"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -992,7 +1003,7 @@ msgstr "Bewerken..."
#: editor/connections_dialog.cpp
msgid "Go to Method"
-msgstr "Ga naar methode"
+msgstr "Ga naar Methode"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -1526,6 +1537,10 @@ msgid "Invalid name."
msgstr "Ongeldige naam."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Geldige karakters:"
@@ -1630,7 +1645,9 @@ msgstr "Scène aan het bijwerken..."
msgid "[empty]"
msgstr "[leeg]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[niet opgeslagen]"
@@ -1651,6 +1668,7 @@ msgstr "Map maken"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Naam:"
@@ -1710,7 +1728,7 @@ msgid ""
"'Import Pvrtc' in Project Settings."
msgstr ""
"Doelplatform vereist 'PVRTC' textuurcompressie voor GLES2. Schakel 'Import "
-"Etc' in bij de Projectinstellingen."
+"Pvrtc' in bij de Projectinstellingen."
#: editor/editor_export.cpp
msgid ""
@@ -2147,7 +2165,8 @@ msgid "Properties"
msgstr "Eigenschappen"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "overschreven:"
#: editor/editor_help.cpp
@@ -2291,6 +2310,20 @@ msgstr "Thema-eigenschap"
msgid "Property:"
msgstr "Eigenschap:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(waarde)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2300,6 +2333,29 @@ msgstr "Zet %s"
msgid "Set Multiple:"
msgstr "Zet Meerdere:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Eigenschappen"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Eigenschappen"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopieer Script Pad"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Uitvoer:"
@@ -3117,6 +3173,20 @@ msgstr ""
"aanstaat."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Veranderingen in de scène synchroniseren"
@@ -4269,6 +4339,10 @@ msgstr "In bestanden zoeken"
msgid "Find:"
msgstr "Zoeken:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Vervangen:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Map:"
@@ -4294,6 +4368,11 @@ msgstr "Vind..."
msgid "Replace..."
msgstr "Vervang..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Alles vervangen"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Zoeken: "
@@ -4303,8 +4382,9 @@ msgid "Replace: "
msgstr "Vervangen: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Alles vervangen (onomkeerbaar)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Alles vervangen"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4522,6 +4602,12 @@ msgstr ""
"WAARSCHUWING: Er bestaan assets die gebruikmaken van deze bron, hierdoor "
"kunnen deze mogelijk niet worden geladen."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Bron laden mislukt."
@@ -5991,6 +6077,11 @@ msgstr "Alt + Slepen : Verplaatsen"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt + Slepen : Verplaatsen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "De uitgekozen knoop of overgang verwijderen."
@@ -6022,6 +6113,10 @@ msgid "Scale Mode"
msgstr "Schaalmodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6120,23 +6215,47 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Slot Geselecteerd"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Ontgrendel het geselecteerde object (kan verplaatst worden)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Geselecteerde Verwijderen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
"Zorgt ervoor dat de kinderen van dit object niet geselecteerd kunnen worden."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Selectie Groeperen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
"Herstelt de mogelijkheid van selecteerbaarheid bij de kinderen van het "
"object."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Selectie Degroeperen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Skeletinstellingen"
@@ -6186,6 +6305,7 @@ msgid "Show Group And Lock Icons"
msgstr "Toon Groep en Slot Iconen"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Center Selection"
msgstr "Centreer Selectie"
@@ -7798,6 +7918,11 @@ msgid "Find in Files..."
msgstr "Zoeken in bestanden..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Vervang..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Contextuele Hulp"
@@ -8349,6 +8474,19 @@ msgid "Toggle Freelook"
msgstr "Toggle Freelook"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Reset naar standaard waarden"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformatie"
@@ -9122,6 +9260,30 @@ msgstr "Thema importeren"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Beschikbare Profielen:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Bestandsnaam is leeg."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Weet je zeker dat je meer dan één project wilt openen?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Track Hernoemen"
@@ -9147,21 +9309,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Element toevoegen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Knooptype"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Laad standaard"
@@ -9180,6 +9327,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Element toevoegen"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Thema"
@@ -11715,10 +11867,6 @@ msgid "Batch Rename"
msgstr "Bulk hernoemen"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Vervangen:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Voorvoegsel:"
@@ -12001,6 +12149,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Nieuwe scène opslaan als..."
@@ -12964,63 +13126,68 @@ msgstr "Vul selectie"
msgid "End of inner exception stack trace"
msgstr "Einde van innerlijke exception stack trace"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "Een NavigationMesh-bron is nodig om deze knoop te laten werken."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Bak NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Navigatiemesh wissen."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Configuratie aan het instellen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Raster groote uitrekenen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Hoogteveld aan het creëeren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "begaanbaare driehoeken markeren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Bezig met opbouw van compact hoogteveld..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Wandelbaar gebied aan het eroderen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partitioneren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Contouren aan het creëeren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Polymesh aan het creëeren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Naar navigatie mesh aan het converteren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigatie Mesh Generator Setup:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Geometrie aan het ontleden..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Klaar!"
@@ -14064,6 +14231,16 @@ msgstr ""
"De occluder-polygoon van deze occluder is leeg. Teken alstublieft een "
"polygoon."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14316,11 +14493,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"Een SpotLight met een hoek breder dan 90 graden kan geen schaduwen werpen."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "Een NavigationMesh-bron is nodig om deze knoop te laten werken."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14328,6 +14505,12 @@ msgstr ""
"NavigationMeshInstance moet een (klein)kind zijn van een Navigation-knoop om "
"navigatiegevens door te geven."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14775,10 +14958,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Toewijzing aan functie."
diff --git a/editor/translations/or.po b/editor/translations/or.po
index 15a041d554..59c61de288 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -1,6 +1,6 @@
# Odia translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Pro Neon <proneon267@gmail.com>, 2019.
msgid ""
@@ -317,6 +317,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -479,6 +483,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1431,6 +1439,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1535,7 +1547,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1556,6 +1570,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2027,7 +2042,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2163,6 +2178,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2172,6 +2200,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2910,6 +2958,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3967,6 +4029,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3990,6 +4056,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -3999,7 +4069,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4213,6 +4283,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5634,6 +5710,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5662,6 +5742,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5756,20 +5840,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7369,6 +7473,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7881,6 +7989,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8592,37 +8712,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8642,6 +8770,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10982,10 +11114,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11258,6 +11386,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12187,63 +12329,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13177,6 +13324,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13383,16 +13540,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13787,10 +13950,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index 3d6a9cc22f..fd2468a30e 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -1,6 +1,6 @@
# Polish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# 8-bit Pixel <dawdejw@gmail.com>, 2016.
# Adam Wolanski <adam.wolanski94@gmail.com>, 2017.
@@ -57,7 +57,7 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-10-31 22:17+0000\n"
+"PO-Revision-Date: 2021-12-23 15:30+0000\n"
"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
@@ -67,7 +67,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -370,6 +370,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplikuj klucz(e)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Dodaj %d klatek"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Usuń klucz(e)"
@@ -538,6 +543,11 @@ msgstr ""
"Ta opcja nie działa dla edycji Beziera, ponieważ jest to tylko jedna ścieżka."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Przeskaluj klatki kluczowe"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1518,6 +1528,10 @@ msgid "Invalid name."
msgstr "Niewłaściwa nazwa."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Dopuszczalne znaki:"
@@ -1622,7 +1636,9 @@ msgstr "Aktualizacja sceny ..."
msgid "[empty]"
msgstr "[pusty]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[niezapisany]"
@@ -1643,6 +1659,7 @@ msgstr "Utwórz katalog"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nazwa:"
@@ -2135,7 +2152,8 @@ msgid "Properties"
msgstr "Właściwości"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "nadpisanie:"
#: editor/editor_help.cpp
@@ -2167,9 +2185,8 @@ msgid "Icons"
msgstr "Ikony"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
-msgstr "Styl"
+msgstr "Style"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2276,6 +2293,20 @@ msgstr "Właściwość motywu"
msgid "Property:"
msgstr "Właściwość:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(wartość)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2285,6 +2316,29 @@ msgstr "Ustaw %s"
msgid "Set Multiple:"
msgstr "Ustaw wiele:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Skopiuj właściwości"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Wklej właściwości"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Skopiuj ścieżkę skryptu"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Wyjście:"
@@ -3097,6 +3151,20 @@ msgstr ""
"w uruchomionym projekcie."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Synchronizuj zmiany na scenie"
@@ -4215,6 +4283,10 @@ msgstr "Znajdź w plikach"
msgid "Find:"
msgstr "Znajdź:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Zastąp:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Folder:"
@@ -4240,6 +4312,11 @@ msgstr "Znajdź..."
msgid "Replace..."
msgstr "Zamień..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Zastąp wszystkie"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Znajdź: "
@@ -4249,8 +4326,9 @@ msgid "Replace: "
msgstr "Zastąp: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Zastąp wszystkie (nie można cofnąć)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Zastąp wszystkie"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4471,6 +4549,12 @@ msgstr ""
"OSTRZEŻENIE: Istnieje zawartość używająca tego zasobu, która może przestać "
"działać prawidłowo."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nie udało się wczytać zasobu."
@@ -5935,6 +6019,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Przeciągnij: Przesuń zaznaczony węzeł."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Przeciągnij: Przesuń zaznaczony węzeł."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Ustaw pozycję osi obrotu zaznaczonego węzła."
@@ -5965,6 +6054,10 @@ msgid "Scale Mode"
msgstr "Tryb skalowania"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6061,20 +6154,44 @@ msgstr "Zablokuj wybrany obiekt w miejscu (nie można go przesuwać)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Zablokuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Odblokuj wybrany obiekt (można go przesuwać)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Odblokuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Zablokuj selekcję węzłów podrzędnych."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Grupuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Odblokuj selekcję węzłów podrzędnych."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Rozgrupuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opcje szkieletu"
@@ -7716,6 +7833,11 @@ msgid "Find in Files..."
msgstr "Znajdź w plikach..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Zamień..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Pomoc kontekstowa"
@@ -8240,6 +8362,19 @@ msgid "Toggle Freelook"
msgstr "Przełącz swobodny widok"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Resetuj do domyślnych"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Przekształcanie"
@@ -8962,6 +9097,29 @@ msgid "Another Theme"
msgstr "Inny motyw"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Dodaj typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Dostępne profile:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Nazwa pliku jest pusta."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Czy jesteś pewny że chcesz otworzyć więcej niż jeden projekt?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Potwierdź zmianę nazwy elementu"
@@ -8986,18 +9144,6 @@ msgstr ""
"zaktualizuje te same właściwości we wszystkich innych StyleBoxach tego typu."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Dodaj typ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Dodaj typ elementu"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Typy węzłów:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Pokaż domyślne"
@@ -9014,6 +9160,10 @@ msgid "Override all default type items."
msgstr "Nadpisz wszystkie domyślne elementy typu."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Dodaj typ elementu"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Motyw:"
@@ -11518,10 +11668,6 @@ msgid "Batch Rename"
msgstr "Grupowa zmiana nazwy"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Zastąp:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Przedrostek:"
@@ -11811,6 +11957,20 @@ msgstr ""
"bazowaną na instancji sceny, używając Scena -> Nowa scena dziedzicząca..."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Zapisz nową scenę jako ..."
@@ -12772,63 +12932,70 @@ msgstr "Zbuduj rozwiązanie"
msgid "End of inner exception stack trace"
msgstr "Koniec śladu stosu wewnętrznego wyjątku"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Zasób typu NavigationMesh musi być ustawiony w odpowiednim polu, aby ten "
+"węzeł zadziałał."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Przygotuj NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Wyczyść siatkę nawigacji."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Ustawianie konfiguracji..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Obliczanie wielkości siatki..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Tworzenie pola wysokości..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Zaznaczanie możliwych do przejścia trójkątów ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Konstruowanie zwartego pola wysokości..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erodowanie osiągalnego obszaru..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Rozdzielanie..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Tworzenie konturów..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Tworzenie siatki wielokątnej..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Konwertowanie do natywnej siatki nawigacyjnej..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Ustawienia generatora siatek nawigacyjnych:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Parsowanie Geometrii..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Skończone!"
@@ -13395,20 +13562,16 @@ msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Use Custom Build\" musi być włączone, by używać wtyczek."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" "
"or \"OpenXR\"."
msgstr ""
-"\"Hand Tracking\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus Mobile VR"
-"\"."
+"\"Hand Tracking\" jest poprawne tylko, gdy \"Xr Mode\" jest \"Oculus Mobile "
+"VrApi\" lub \"OpenXR\"."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
-msgstr ""
-"\"Hand Tracking\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus Mobile VR"
-"\"."
+msgstr "\"Passthrough\" jest poprawne tylko, gdy \"Xr Mode\" jest \"OpenXR\"."
#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
@@ -13416,23 +13579,23 @@ msgstr ""
"\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-"\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone."
+"Zmiana \"Min Sdk\" jest poprawna tylko, gdy \"Use Custom Build\" jest "
+"włączone."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
"enabled."
msgstr ""
-"\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone."
+"Zmiana \"Target Sdk\" jest poprawna tylko, gdy \"Use Custom Build\" jest "
+"włączone."
#: platform/android/export/export_plugin.cpp
msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
-msgstr ""
+msgstr "Wersja \"Target Sdk\" musi być większa lub równa wersji \"Min Sdk\"."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13864,6 +14027,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Wielokąt przesłaniający dla tego przesłaniacza jest pusty. Narysuj wielokąt."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14123,13 +14296,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight z kątem szerszym niż 90 stopni nie może rzucać cieni."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Zasób typu NavigationMesh musi być ustawiony w odpowiednim polu, aby ten "
-"węzeł zadziałał."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14137,6 +14308,12 @@ msgstr ""
"NavigationMeshInstance musi być dzieckiem lub wnukiem węzła typu Navigation. "
"Udostępnia on tylko dane nawigacyjne."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Żaden kształt nie jest ustawiony."
@@ -14612,11 +14789,6 @@ msgstr ""
"ponownie we \"vertex\" ani \"light\"."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Varying z etapu fragmentów nie jest dostępny w niestandardowej funkcji!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Przypisanie do funkcji."
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 7b4329c771..799813904a 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -1,6 +1,6 @@
# Pirate translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Calum Knott <calum@calumk.com>, 2017.
# Zion Nimchuk <zionnimchuk@gmail.com>, 2016-2017.
@@ -341,6 +341,10 @@ msgid "Duplicate Key(s)"
msgstr "Rename Variable"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Yar, Blow th' Selected Down!"
@@ -509,6 +513,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1483,6 +1491,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1588,7 +1600,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1609,6 +1623,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2104,7 +2119,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2246,6 +2261,19 @@ msgstr "Paste yer Node"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2255,6 +2283,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Paste yer Node"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Paste yer Node"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Forge yer Node!"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Cap'n's Log:"
@@ -3005,6 +3056,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4109,6 +4174,10 @@ msgstr "Find ye Node Type"
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4133,6 +4202,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Find ye Node Type"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4142,7 +4216,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4363,6 +4437,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5842,6 +5922,11 @@ msgstr "Yar, Blow th' Selected Down!"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Discharge ye' Signal"
@@ -5871,6 +5956,10 @@ msgid "Scale Mode"
msgstr "Slit th' Node"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5969,20 +6058,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Yar, Blow th' Selected Down!"
@@ -7630,6 +7743,11 @@ msgid "Find in Files..."
msgstr "Find ye Node Type"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Find ye Node Type"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8159,6 +8277,18 @@ msgid "Toggle Freelook"
msgstr "Toggle ye Breakpoint"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8918,40 +9048,48 @@ msgid "Another Theme"
msgstr "th' Members:"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Find ye Node Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "yer Nodes doing nothin':"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "Find ye Node Type"
+msgid "Override Item"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Find ye Node Type"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
@@ -8970,6 +9108,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "th' Members:"
@@ -11404,10 +11546,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11688,6 +11826,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12665,63 +12817,68 @@ msgstr "All yer Booty"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13715,6 +13872,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13921,16 +14088,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14329,10 +14502,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/pt.po b/editor/translations/pt.po
index f6aefb33cb..fcaec3fee6 100644
--- a/editor/translations/pt.po
+++ b/editor/translations/pt.po
@@ -1,6 +1,6 @@
# Portuguese translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# António Sarmento <antonio.luis.sarmento@gmail.com>, 2016.
# Carlos Vieira <carlos.vieira@gmail.com>, 2017.
@@ -24,7 +24,7 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-07 09:45+0000\n"
+"PO-Revision-Date: 2021-12-31 08:52+0000\n"
"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/"
"godot/pt/>\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 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -336,6 +336,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Chave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Adicionar %d Frame(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Apagar Chave(s)"
@@ -505,6 +510,11 @@ msgstr ""
"Esta opção não funciona para edição de Bezier, dado que é uma única faixa."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Escalar Chaves"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1489,6 +1499,10 @@ msgid "Invalid name."
msgstr "Nome inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1594,7 +1608,9 @@ msgstr "A atualizar cena..."
msgid "[empty]"
msgstr "[vazio]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[não guardado]"
@@ -1615,6 +1631,7 @@ msgstr "Criar Pasta"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nome:"
@@ -2110,7 +2127,8 @@ msgid "Properties"
msgstr "Propriedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "sobrepor:"
#: editor/editor_help.cpp
@@ -2142,9 +2160,8 @@ msgid "Icons"
msgstr "Ícones"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
-msgstr "Estilo"
+msgstr "Estilos"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2251,6 +2268,20 @@ msgstr "Propriedade do Tema"
msgid "Property:"
msgstr "Propriedade:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2260,6 +2291,29 @@ msgstr "Definir %s"
msgid "Set Multiple:"
msgstr "Definir Múltiplo:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copiar Propriedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Colar Propriedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Caminho do Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Saída:"
@@ -3074,6 +3128,20 @@ msgstr ""
"projeto em execução."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Alterações da Cena"
@@ -3298,8 +3366,8 @@ msgstr ""
"Poderá depois aplicar modificações e compilar o seu APK personalizado a "
"exportar (com adição de módulos, a alterar AndroidManifest.xml, etc.).\n"
"Repare que de forma a criar compilações personalizadas em vez de usar APKs "
-"pré-compilados, a opção \"Usar Compilação Personalizada\" deve ser ativada "
-"na predefinição da exportação Android."
+"pré-compilados, a opção \"Use Custom Build\" deve ser ativada na "
+"predefinição da exportação Android."
#: editor/editor_node.cpp
msgid ""
@@ -4200,6 +4268,10 @@ msgstr "Localizar em Ficheiros"
msgid "Find:"
msgstr "Localizar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Substituir:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Pasta:"
@@ -4225,6 +4297,11 @@ msgstr "Localizar..."
msgid "Replace..."
msgstr "Substituir..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Substituir todos"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Localizar: "
@@ -4234,8 +4311,9 @@ msgid "Replace: "
msgstr "Substituir: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Substituir tudo (definitivo)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Substituir todos"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4454,6 +4532,12 @@ msgstr ""
"AVISO: Outros recursos usam este recurso, e podem não ser carregados "
"corretamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Falha ao carregar recurso."
@@ -5913,6 +5997,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Arrastar: Mover nó selecionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastar: Mover nó selecionado."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Define posição do pivô do nó selecionado."
@@ -5943,6 +6032,10 @@ msgid "Scale Mode"
msgstr "Modo Escalar"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6039,20 +6132,44 @@ 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
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bloquear Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Desbloquear o Objeto selecionado (pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Desbloquear Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Assegura que os Objetos-filho não são selecionáveis."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaura a capacidade de selecionar os Objetos-filho."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opções do Esqueleto"
@@ -7689,6 +7806,11 @@ msgid "Find in Files..."
msgstr "Localizar em Ficheiros..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Substituir..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ajuda Contextual"
@@ -8213,6 +8335,19 @@ msgid "Toggle Freelook"
msgstr "Alternar Freelook"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Restaurar Predefinição"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformar"
@@ -8934,6 +9069,29 @@ msgid "Another Theme"
msgstr "Outro Tema"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Adicionar Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfis disponíveis:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Nome do Ficheiro vazio."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Está seguro que quer abrir mais do que um Projeto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmar Renomear Item"
@@ -8958,18 +9116,6 @@ msgstr ""
"atualizar as mesmas em todos os StyleBoxes deste tipo."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Adicionar Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Adicionar Tipo de Item"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipos de Nó:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Predefinição"
@@ -8987,6 +9133,10 @@ msgid "Override all default type items."
msgstr "Sobrepõe todos os itens de tipo predefinido."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Adicionar Tipo de Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11484,10 +11634,6 @@ msgid "Batch Rename"
msgstr "Renomear em Massa"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Substituir:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefixo:"
@@ -11777,6 +11923,20 @@ msgstr ""
"cena instanciada usando Cena > Nova Cena Herdada..."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Guardar Nova Cena Como..."
@@ -12739,63 +12899,70 @@ msgstr "Construir Solução"
msgid "End of inner exception stack trace"
msgstr "Fim do stack trace de exceção interna"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.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."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Consolidar NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Limpar a malha de navegação."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "A ajustar configuração..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "A calcular tamanho da grelha..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "A criar heightfield..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "A marcar triângulos caminháveis..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "A construir heightfield compacto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "A corroer a área caminhável..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "A segmentar..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "A criar contornos..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "A criar polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "A converter para malha de navegação nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuração do Gerador da Malha de Navegação:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "A analisar geometria..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Feito!"
@@ -13363,51 +13530,41 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr ""
-"\"Usar Compilação Personalizada\" têm de estar ativa para usar os plugins."
+msgstr "\"Use Custom Build\" têm de estar ativa para usar os plugins."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" "
"or \"OpenXR\"."
msgstr ""
-"\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
-"\"."
+"\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile "
+"VrApi\" ou \"OpenXR\"."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
-msgstr ""
-"\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
-"\"."
+msgstr "\"Passthrough\" só é válido quando \"Modo Xr\" é \"OpenXR\"."
#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
-msgstr ""
-"\"Exportar AAB\" só é válido quando \"Usar Compilação Personalizada\" está "
-"ativa."
+msgstr "\"Exportar AAB\" só é válido quando \"Use Custom Build\" está ativa."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-"\"Exportar AAB\" só é válido quando \"Usar Compilação Personalizada\" está "
-"ativa."
+"Mudança de \"Min Sdk\" só é válida quando \"Use Custom Build\" está ativa."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
"enabled."
msgstr ""
-"\"Exportar AAB\" só é válido quando \"Usar Compilação Personalizada\" está "
-"ativa."
+"Mudança de \"Target Sdk\" só é válida quando \"Use Custom Build\" está ativa."
#: platform/android/export/export_plugin.cpp
msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
msgstr ""
+"Versão de \"Target Sdk\" tem de ser maior ou igual à versão de \"Min Sdk\"."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13835,6 +13992,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "O polígono oclusor deste oclusor está vazio. Desenhe um polígono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14089,13 +14256,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "Uma SpotLight com ângulo superior a 90 graus não cria sombras."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Um recurso NavigationMesh tem de ser definido ou criado para este nó "
-"funcionar."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14103,6 +14268,12 @@ msgstr ""
"NavigationMeshInstance tem de ser filho ou neto de um nó Navigation. Apenas "
"fornece dados de navegação."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Nenhuma forma está definida."
@@ -14578,10 +14749,6 @@ msgstr ""
"'vertex' ou 'light'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "Variante fragment-stage não pode ser acedida em função personalizada!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Atribuição a função."
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 2045a1140c..f4872c4483 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -1,6 +1,6 @@
# Portuguese (Brazil) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Allyson Souza <allyson_as@outlook.com>, 2017.
# Anderson Araujo <anderson.araujoprog@gmail.com>, 2018.
@@ -105,7 +105,7 @@
# Elton <eltondeoliveira@outlook.com>, 2020, 2021.
# ThiagoCTN <thiagocampostn@gmail.com>, 2020.
# Alec Santos <alecsantos96@gmail.com>, 2020.
-# Augusto Milão <augusto.milao01@gmail.com>, 2021.
+# Augusto Milão <augusto.milao01@gmail.com>, 2021, 2022.
# Gabriel Gavazzi Felix <mutcholoko32@gmail.com>, 2021.
# Lucas Dantas <lucas.lucantas38@gmail.com>, 2021.
# Carlos Bonifacio <carlosboni.sa@gmail.com>, 2021.
@@ -130,13 +130,16 @@
# Cearaj <pmoraisleal@gmail.com>, 2021.
# Alefy San <alefyferreiradeoliveira@outlook.com>, 2021.
# Joel Gomes da Silva <joelgomes1994@hotmail.com>, 2021.
+# Orangotango De tanga <luizinho0045@gmail.com>, 2021.
+# Felipe SiFa <felipe@logus.digital>, 2022.
+# Gabriel Gian <gabrielgian@live.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2021-12-09 23:13+0000\n"
-"Last-Translator: Joel Gomes da Silva <joelgomes1994@hotmail.com>\n"
+"PO-Revision-Date: 2022-01-07 11:42+0000\n"
+"Last-Translator: Felipe SiFa <felipe@logus.digital>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -144,7 +147,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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -446,6 +449,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Chave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Adicionar %d Frame(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Deletar Chave(s)"
@@ -616,6 +624,11 @@ msgstr ""
"única."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Alterar Escala das Chaves na Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -813,7 +826,7 @@ msgstr "Mudar Deslocamento do Início do Clip de Trilha de Audio"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr "Alterar fim da Trilha de Aúdio"
+msgstr "Alterar fim da Trilha de Áudio"
#: editor/array_property_edit.cpp
msgid "Resize Array"
@@ -1598,6 +1611,10 @@ msgid "Invalid name."
msgstr "Nome Inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1702,7 +1719,9 @@ msgstr "Atualizando Cena..."
msgid "[empty]"
msgstr "[vazio]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[não salvo]"
@@ -1723,6 +1742,7 @@ msgstr "Criar Pasta"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nome:"
@@ -2220,7 +2240,8 @@ msgid "Properties"
msgstr "Propriedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "sobrescrever:"
#: editor/editor_help.cpp
@@ -2252,7 +2273,6 @@ msgid "Icons"
msgstr "Ícones"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
msgstr "Estilo"
@@ -2361,6 +2381,20 @@ msgstr "Propriedade do Tema"
msgid "Property:"
msgstr "Propriedade:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2370,6 +2404,29 @@ msgstr "Conjunto %s"
msgid "Set Multiple:"
msgstr "Definir Múltiplos:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copiar Propriedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Colar Propriedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Caminho do Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Saída:"
@@ -2416,7 +2473,7 @@ msgstr "Acima"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
-msgstr "Nó"
+msgstr "Nodo"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
@@ -2444,8 +2501,8 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
-"Gira quando a janela do editor é redesenhada.\n"
-"Atualização contínua está habilitada, o que pode aumentar o uso de energia. "
+"Roda quando a janela do editor é redesenhada.\n"
+"Atualização Continua é habilitada, o que pode aumentar o consumo de energia. "
"Clique para desativá-lo."
#: editor/editor_node.cpp
@@ -2836,7 +2893,9 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: '%s'."
-msgstr "Não foi possível encontrar o campo de script para o plugin em: '%s'."
+msgstr ""
+"Não foi possível encontrar o campo de script para o plugin em: 'res://addons/"
+"%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
@@ -3188,6 +3247,20 @@ msgstr ""
"durante o projeto em execução."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Mudanças de Cena"
@@ -3449,7 +3522,7 @@ msgstr "Aplicar transformações da MeshInstance"
#: editor/editor_node.cpp
msgid "Open & Run a Script"
-msgstr "Abrir e Rodar um Script"
+msgstr "Abrir e Executar um Script"
#: editor/editor_node.cpp
msgid ""
@@ -4226,19 +4299,19 @@ msgstr "Ordenar arquivos"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr "Ordenar por Nome (Ascendente)"
+msgstr "Ordenar por Nome (Crescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr "Ordenar por Nome (Descendente)"
+msgstr "Ordenar por Nome (Decrescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr "Ordenar por Tipo (Ascendente)"
+msgstr "Ordenar por Tipo (Crescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr "Ordenar por Tipo (Descendente)"
+msgstr "Ordenar por Tipo (Decrescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Last Modified"
@@ -4258,7 +4331,7 @@ msgstr "Renomear..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr "Focar a caixa de pesquisa"
+msgstr "Foca a caixa de pesquisa"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4319,6 +4392,10 @@ msgstr "Localizar nos arquivos"
msgid "Find:"
msgstr "Encontrar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Substituir:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Pasta:"
@@ -4344,6 +4421,11 @@ msgstr "Localizar..."
msgid "Replace..."
msgstr "Substituir..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Substituir Tudo"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Encontrar: "
@@ -4353,8 +4435,9 @@ msgid "Replace: "
msgstr "Substituir: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Substituir Tudo (sem desfazer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Substituir Tudo"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4362,7 +4445,7 @@ msgstr "Procurando..."
#: editor/find_in_files.cpp
msgid "%d match in %d file."
-msgstr "%d correspondências no arquivo %d."
+msgstr "%d corresponde a %d arquivo."
#: editor/find_in_files.cpp
msgid "%d matches in %d file."
@@ -4516,7 +4599,7 @@ msgstr "Importador:"
#: editor/import_defaults_editor.cpp
msgid "Reset to Defaults"
-msgstr "Redefinir padrões"
+msgstr "Redefinir para o padrão"
#: editor/import_dock.cpp
msgid "Keep File (No Import)"
@@ -4575,6 +4658,12 @@ msgstr ""
"AVISO: Existem objetos que utilizam esse recurso, eles podem parar de "
"carregar apropriadamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Falha ao carregar recurso."
@@ -4910,7 +4999,7 @@ msgstr "Nó de Saída não pode ser adicionado à árvore de mistura."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Add Node to BlendTree"
-msgstr "Adicionar Nó(s) a Partir da Árvore (BlendTree)"
+msgstr "Adicionar Nó(s) à BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Node Moved"
@@ -5853,7 +5942,7 @@ msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
msgstr ""
-"Filhos de contêineres tem suas posições e tamanhos sobrescritos pelos seus "
+"Filhos de contêineres têm suas posições e tamanhos sobrescritos pelos seus "
"pais."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6043,6 +6132,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Arrastar: Mover nó selecionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastar: Mover nó selecionado."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Define a posição do pivô do nó selecionado."
@@ -6073,6 +6167,10 @@ msgid "Scale Mode"
msgstr "Modo de Escalonamento"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6169,20 +6267,44 @@ msgstr "Travar o objeto selecionado no local (não pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Fixar Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Destravar o objeto selecionado (pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Destravar Selecionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Garante que os filhos do objeto não sejam selecionáveis."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Selecionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaura a habilidade dos filhos do objeto de serem selecionados."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Selecionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opções de esqueleto"
@@ -7824,6 +7946,11 @@ msgid "Find in Files..."
msgstr "Procurar nos Arquivos..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Substituir..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ajuda Contextual"
@@ -8313,19 +8440,19 @@ msgstr "Orbitar Visão Para Baixo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Left"
-msgstr "Orbitar Visão Para Esquerda"
+msgstr "Orbitar Visão para a Esquerda"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Right"
-msgstr "Orbitar Visão Para Direita"
+msgstr "Orbitar Visão para a Direita"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Up"
-msgstr "Orbitar Visão Para Cima"
+msgstr "Orbitar Visão para Cima"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View 180"
-msgstr "Orbitar Visão Em 180"
+msgstr "Orbitar Visão em 180"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal View"
@@ -8348,6 +8475,19 @@ msgid "Toggle Freelook"
msgstr "Alternar Visão Livre"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Redefinir padrões"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformação"
@@ -9070,6 +9210,29 @@ msgid "Another Theme"
msgstr "Outro Tema"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Adicionar Modelo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfis Disponíveis:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "O nome do arquivo está vazio."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Tem certeza de que quer abrir mais de um projeto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmar Renomeação do Item"
@@ -9094,18 +9257,6 @@ msgstr ""
"atualizará as mesmas propriedades em todos os outros StyleBoxes deste tipo."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Adicionar Modelo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Adicionar Tipo de Item"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipos de Nó:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Padrão"
@@ -9123,6 +9274,10 @@ msgid "Override all default type items."
msgstr "Substituir todos os itens do modelo padrão."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Adicionar Tipo de Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -9151,7 +9306,7 @@ msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
-"Alterar o selecionador de controles, permitindo selecionar visualmente os "
+"Acionar o selecionador de controles, permitindo selecionar visualmente os "
"tipos de controles para edição."
#: editor/plugins/theme_editor_preview.cpp
@@ -11623,10 +11778,6 @@ msgid "Batch Rename"
msgstr "Renomear em lote"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Substituir:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefixo:"
@@ -11918,6 +12069,20 @@ msgstr ""
"disso."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Salvar Nova Cena Como..."
@@ -12853,7 +13018,7 @@ msgstr "Gerar buffers"
#: modules/lightmapper_cpu/lightmapper_cpu.cpp
msgid "Direct lighting"
-msgstr "Direct lightning"
+msgstr "Iluminação direta"
#: modules/lightmapper_cpu/lightmapper_cpu.cpp
msgid "Indirect lighting"
@@ -12879,63 +13044,70 @@ msgstr "Construir Solução"
msgid "End of inner exception stack trace"
msgstr "Fim da pilha de rastreamento de exceção interna"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Um recurso do tipo NavigationMesh deve ser definido ou criado para que este "
+"nó funcione."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Bake NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Apagar a malha de navegação."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Preparando Configuração..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calculando tamanho da grade..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Criando mapa de altura..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcando triângulos caminháveis..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construindo um mapa de altura compacto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erodindo área caminhável..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Criando contornos..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Criando polimalha..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convertando para malha de navegação nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuração do Gerador de Malha de Navegação:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analisando Geometria..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Pronto!"
@@ -13464,7 +13636,7 @@ msgstr "Um caminho Android SDK é necessário nas Configurações do Editor."
#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
-msgstr "Caminho do Android SDK está inválido para Configurações do Editor."
+msgstr "Caminho do Android SDK está inválido nas Configurações do Editor."
#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
@@ -13483,7 +13655,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
-msgstr "Diretório 'ferramentas-da-plataforma' está faltando !"
+msgstr "Diretório 'ferramentas-da-plataforma' está faltando!"
#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
@@ -13514,7 +13686,6 @@ msgstr ""
"utilizar plugins."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" "
"or \"OpenXR\"."
@@ -13522,10 +13693,9 @@ msgstr ""
"\"Hand Tracking\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
msgstr ""
-"\"Hand Tracking\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"."
+"\"Passthrough\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"."
#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
@@ -13534,7 +13704,6 @@ msgstr ""
"habilitado."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
@@ -13542,7 +13711,6 @@ msgstr ""
"habilitado."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
"enabled."
@@ -13553,6 +13721,8 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
msgstr ""
+"Versão do \"Target Sdk\" precisa ser igual ou maior que a versão do \"Min Sdk"
+"\"."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13596,7 +13766,7 @@ msgstr "Exportando para Android"
#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
-msgstr "Nome de arquivo invalido! Android App Bunlde requer a extensão *.aab."
+msgstr "Nome de arquivo inválido! Android App Bundle requer a extensão *.aab."
#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
@@ -13976,6 +14146,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"O polígono para este oclusor está vazio. Por favor desenhe um polígono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14234,13 +14414,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "Um SpotLight com um ângulo maior que 90 graus não pode criar sombras."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Um recurso do tipo NavigationMesh deve ser definido ou criado para que este "
-"nó funcione."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14248,6 +14426,12 @@ msgstr ""
"NavigationMeshInstance deve ser filho ou neto de um nó Navigation. Ele "
"apenas fornece dados de navegação."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Nenhuma forma foi definida."
@@ -14571,7 +14755,7 @@ msgid ""
"children placement behavior.\n"
"If you don't intend to add a script, use a plain Control node instead."
msgstr ""
-"O contêiner por si só não tem nenhum propósito, a menos que um script "
+"O contêiner por si só não possui propósito algum, a menos que um script "
"configure seu comportamento de posicionamento dos filhos.\n"
"Se você não pretende adicionar um script, use um nó de Controle simples."
@@ -14598,7 +14782,7 @@ msgstr "Deve usar uma extensão válida."
#: scene/gui/graph_edit.cpp
msgid "Enable grid minimap."
-msgstr "Ativar minimapa de grade."
+msgstr "Ativar mini mapa em grade."
#: scene/gui/nine_patch_rect.cpp
msgid ""
@@ -14669,10 +14853,11 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
-"Este viewport não está definido como destino de render. Se você pretende que "
-"ele mostre seu conteúdo diretamente na tela, faça-o filho de um nó Control "
-"para que ele possa ter um tamanho. Caso contrário, defina-o como destino de "
-"render e atribua sua textura interna a algum nó para exibir."
+"Este viewport não está definido como destino de renderização. Se você "
+"pretende que ele mostre seu conteúdo diretamente na tela, faça-o filho de um "
+"nó de Controle para que ele possa ter um tamanho. Caso contrário, defina-o "
+"como destino de renderização e atribua sua textura interna a algum nó para "
+"exibir."
#: scene/main/viewport.cpp
msgid ""
@@ -14727,10 +14912,6 @@ msgstr ""
"'vertex' ou 'light'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "Variante Fragment-stage não pôde ser acessada na função personalizada!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Atribuição à função."
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index 8a556a8e8f..d763d64a8c 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -1,6 +1,6 @@
# Romanian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Calin Sopterean <csopterean@gmail.com>, 2018.
# Filip <filipanton@tutanota.com>, 2018, 2020.
@@ -336,6 +336,10 @@ msgid "Duplicate Key(s)"
msgstr "Clonare Chei"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ștergeți Cheile"
@@ -504,6 +508,11 @@ msgstr ""
"singură pistă."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Scalați Cheile"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1490,6 +1499,10 @@ msgid "Invalid name."
msgstr "Nume nevalid."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caractere valide:"
@@ -1598,7 +1611,9 @@ msgstr "Scena se Actualizează..."
msgid "[empty]"
msgstr "[gol]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[nesalvat]"
@@ -1619,6 +1634,7 @@ msgstr "Creare folder"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nume:"
@@ -2118,7 +2134,8 @@ msgid "Properties"
msgstr "Proprietăți"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "extindere:"
#: editor/editor_help.cpp
@@ -2259,6 +2276,20 @@ msgstr "Proprietate Temă"
msgid "Property:"
msgstr "Proprietate:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valoare)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
#, fuzzy
@@ -2269,6 +2300,29 @@ msgstr "Setați %s"
msgid "Set Multiple:"
msgstr "Seteaza Multiple:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Proprietăți"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Proprietăți"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Proprietăți"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Afișare:"
@@ -3079,6 +3133,20 @@ msgstr ""
"dacă această opțiune este activată."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Sincronizează Modificările Scenei"
@@ -4198,6 +4266,11 @@ msgstr "Caută în fișiere"
msgid "Find:"
msgstr "Găsiți:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Înlocuiți:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Folderul:"
@@ -4221,6 +4294,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Înlocuiți Tot"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Găsiți: "
@@ -4230,8 +4308,9 @@ msgid "Replace: "
msgstr "Înlocuiți: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Înlocuiește tot (fără anulare)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Înlocuiți Tot"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4449,6 +4528,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Încărcarea resursei a eșuat."
@@ -5969,6 +6054,11 @@ msgstr "Alt+Trage: Mutare"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Trage: Mutare"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Ștergeți pista selectată."
@@ -6001,6 +6091,10 @@ msgid "Scale Mode"
msgstr "Mod Redimensionare (R)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6108,20 +6202,44 @@ msgstr "Imobilizează obiectul selectat (nu poate fi mișcat)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Selectează"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Remobilizează obiectul selectat (poate fi mișcat)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Selectează"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Asigură-te că nu pot fi selectați copiii obiectului."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Elminați Selecția"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaurează abilitatea copiilor obiectului de a fi selectați."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Elminați Selecția"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Singleton (Unicat)"
@@ -7816,6 +7934,11 @@ msgid "Find in Files..."
msgstr "Filtrează fișierele..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Filtrează fișierele..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8358,6 +8481,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Încărcați Implicit"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9137,6 +9273,30 @@ msgstr "Membri"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Adaugă Obiect"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profile Disponibile:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Numele fișierului este gol."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Ești sigur că vrei să ștergi toate conexiunile de la acest semnal?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Redenumește Pista Anim"
@@ -9162,21 +9322,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Adaugă Obiect"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Adaugă Obiect"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Tip nod"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Încărcați Implicit"
@@ -9195,6 +9340,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Adaugă Obiect"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Membri"
@@ -11654,11 +11804,6 @@ msgid "Batch Rename"
msgstr "Redenumește"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Înlocuiți:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11938,6 +12083,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12917,63 +13076,68 @@ msgstr "Toată selecția"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Curăță mesh-ul de navigare."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Inițializarea configurației..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calcularea mărimii grilei..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Crearea câmpului de înălțare..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcarea triunghiurilor traversabile..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construcție câmp de înălțare compact..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Reducerea zonei traversabile..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partiționare..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Crearea conturilor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Crearea plasei de contur..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Se convertește în mesh nativ de navigare..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Setup Generare Mesh de Navigare:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analiza geometriei..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Efectuat!"
@@ -13953,6 +14117,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14161,16 +14335,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14568,10 +14748,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index faabe7c86d..dfecd99550 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -1,6 +1,6 @@
# Russian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Аркадий Авас <savvot@gmail.com>, 2018.
# Artem Varaksa <aymfst@gmail.com>, 2018.
@@ -421,6 +421,11 @@ msgid "Duplicate Key(s)"
msgstr "Дублировать ключ(и)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Добавить кадров: %d"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Удалить ключ(и)"
@@ -590,6 +595,11 @@ msgstr ""
"одна дорожка."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Масштабировать ключи"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1570,6 +1580,10 @@ msgid "Invalid name."
msgstr "Недопустимое имя."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Допустимые символы:"
@@ -1674,7 +1688,9 @@ msgstr "Обновление сцены..."
msgid "[empty]"
msgstr "[пусто]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[не сохранено]"
@@ -1695,6 +1711,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Имя:"
@@ -2194,7 +2211,8 @@ msgid "Properties"
msgstr "Свойства"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "переопределено:"
#: editor/editor_help.cpp
@@ -2334,6 +2352,20 @@ msgstr "Свойство темы"
msgid "Property:"
msgstr "Параметр:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(значение)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2343,6 +2375,29 @@ msgstr "Задать %s"
msgid "Set Multiple:"
msgstr "Задать несколько:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Копировать свойства"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Вставить свойства"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Копировать путь к скрипту"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Вывод:"
@@ -3158,6 +3213,20 @@ msgstr ""
"запущенном проекте."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Синхронизация изменений в сценах"
@@ -4280,6 +4349,10 @@ msgstr "Найти в файлах"
msgid "Find:"
msgstr "Найти:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Заменить:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Папка:"
@@ -4305,6 +4378,11 @@ msgstr "Найти..."
msgid "Replace..."
msgstr "Заменить..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Заменить всё"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Найти: "
@@ -4314,8 +4392,9 @@ msgid "Replace: "
msgstr "Заменить: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Заменить всё (нельзя отменить)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Заменить всё"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4535,6 +4614,12 @@ msgstr ""
"Предупреждение: существуют объекты, которые используют этот ресурс, они "
"могут перестать загружаться должным образом."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Не удалось загрузить ресурс."
@@ -5994,6 +6079,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Тащить: перемещение выбранного узла."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Тащить: перемещение выбранного узла."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Задать положение pivot выделенного узла."
@@ -6024,6 +6114,10 @@ msgid "Scale Mode"
msgstr "Режим масштабирования"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6120,20 +6214,44 @@ msgstr "Зафиксировать выбранный объект."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Разблокировать выделенное"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Делает потомков объекта невыбираемыми."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Сгруппировать выделенное"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Восстанавливает возможность выбора потомков объекта."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Разгруппировать выделенное"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Опции скелета"
@@ -7775,6 +7893,11 @@ msgid "Find in Files..."
msgstr "Найти в файлах..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Заменить..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Контекстная справка"
@@ -8300,6 +8423,19 @@ msgid "Toggle Freelook"
msgstr "Включить свободный вид"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Сбросить настройки"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Преобразование"
@@ -9023,6 +9159,29 @@ msgid "Another Theme"
msgstr "Другая тема"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Добавить тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Доступные профили:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Пустое имя файла."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Вы уверены, что хотите открыть более одного проекта?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Подтвердить переименование элемента"
@@ -9048,18 +9207,6 @@ msgstr ""
"этого типа."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Добавить тип"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Добавить тип элемента"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Типы узлов:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показать по умолчанию"
@@ -9078,6 +9225,10 @@ msgid "Override all default type items."
msgstr "Переопределить все элементы типа по умолчанию."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Добавить тип элемента"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Тема:"
@@ -11576,10 +11727,6 @@ msgid "Batch Rename"
msgstr "Групповое переименование"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Заменить:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Префикс:"
@@ -11876,6 +12023,20 @@ msgstr ""
"унаследованная сцена..."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Сохранить новую сцену как..."
@@ -12840,63 +13001,69 @@ msgstr "Собрать решение"
msgid "End of inner exception stack trace"
msgstr "Конец трассировки внутреннего стека исключений"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Ресурс NavigationMesh должен быть установлен или создан для этого узла."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Запечь NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Очистить полисетку навигации."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Настройка конфигурации..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Расчёт размера сетки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Создание карты высот..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Маркировка проходимых треугольников..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Построение компактной карты высот..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Размытие проходимого района..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Разбиение..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Создание контуров..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Создание полисетки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Преобразование в собственную навигационную полисетку..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Настройка генератора навигационной полисетки:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Анализ геометрии..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Сделано!"
@@ -13920,6 +14087,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Заслоняющий полигон для этого окклюдера пуст. Пожалуйста, добавьте полигон."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14179,12 +14356,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight с углом более 90 градусов не может отбрасывать тени."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Ресурс NavigationMesh должен быть установлен или создан для этого узла."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14192,6 +14368,12 @@ msgstr ""
"NavigationMeshInstance должен быть дочерним или под-дочерним узлом "
"Navigation. Он предоставляет только навигационные данные."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Форма не задана."
@@ -14672,10 +14854,6 @@ msgstr ""
"или «light»."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "Varying стадии fragment не доступны из пользовательских функций!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Назначение функции."
diff --git a/editor/translations/si.po b/editor/translations/si.po
index 045d642f0a..c1b97c5ebf 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -1,6 +1,6 @@
# Sinhala translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Yohan Sandun <Yohan99ysk@gmail.com>, 2018.
# thushariii <thusharipahalage@gmail.com>, 2021.
@@ -328,6 +328,10 @@ msgid "Duplicate Key(s)"
msgstr "යතුරු පිටපත් කරන්න"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "යතුරු මකා දමන්න"
@@ -503,6 +507,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1459,6 +1467,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1563,7 +1575,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1584,6 +1598,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2057,7 +2072,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2194,6 +2209,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2203,6 +2231,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "ලක්ෂණය ලුහුබදින්න"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "යතුරු පිටපත් කරන්න"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "ලක්ෂණය ලුහුබදින්න"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2942,6 +2993,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4003,6 +4068,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4026,6 +4095,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4035,7 +4108,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4250,6 +4323,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5691,6 +5770,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "තෝරාගත් යතුරු මකා දමන්න"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "තෝරාගත් යතුරු මකා දමන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5719,6 +5803,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5814,20 +5902,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "තෝරාගත් යතුරු පිටපත් කරන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "තෝරාගත් යතුරු පිටපත් කරන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "තෝරාගත් යතුරු පිටපත් කරන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7437,6 +7549,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7949,6 +8065,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8672,38 +8800,46 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "ලුහුබදින්නෙක් එක් කරන්න"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "ලුහුබදින්නෙක් එක් කරන්න"
+msgid "Cancel Item Rename"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8723,6 +8859,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11086,10 +11226,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11366,6 +11502,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12299,63 +12449,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13303,6 +13458,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13509,16 +13674,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13913,10 +14084,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 330fb36807..09e2d1221d 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -1,6 +1,6 @@
# Slovak translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# J08nY <johnenter@gmail.com>, 2016.
# MineGame 159 <minegame459@gmail.com>, 2018.
@@ -328,6 +328,10 @@ msgid "Duplicate Key(s)"
msgstr "Duplikovanie Kľúčov"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Vymazanie kľúča(ov)"
@@ -496,6 +500,11 @@ msgid ""
msgstr "Táto možnosť nefunguje pre Bezier editovanie, lebo je to jeden track."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Scale keys Animácie"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1483,6 +1492,10 @@ msgid "Invalid name."
msgstr "Neplatný Názov."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Platné písmená:"
@@ -1588,7 +1601,9 @@ msgstr "Aktualizovanie scény..."
msgid "[empty]"
msgstr "[Prázdne]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[Neuložené]"
@@ -1609,6 +1624,7 @@ msgstr "Vytvoriť adresár"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Meno:"
@@ -2112,7 +2128,8 @@ msgid "Properties"
msgstr "Vlastnosti"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "Predpísať:"
#: editor/editor_help.cpp
@@ -2252,6 +2269,20 @@ msgstr "Vlastnosť Témy"
msgid "Property:"
msgstr "Vlastnosť:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(hodnota)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2261,6 +2292,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Nastaviť Viac:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Vlastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Vlastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Vlastnosti"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -3068,6 +3122,20 @@ msgstr ""
"Navigačné mesh-e a polygony budú viditeľné po spustení projektu."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Zosynchronizovať Zmeny Scény"
@@ -4208,6 +4276,11 @@ msgstr "Nájsť v Súboroch"
msgid "Find:"
msgstr "Nájsť:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Nahradiť: "
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Priečinok:"
@@ -4233,6 +4306,11 @@ msgstr "Nájsť..."
msgid "Replace..."
msgstr "Nahradiť..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Nahradiť Všetko"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Nájsť: "
@@ -4242,8 +4320,9 @@ msgid "Replace: "
msgstr "Nahradiť: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Nahradiť všetky (nedá sa vrátiť späť)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Nahradiť Všetko"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4458,6 +4537,12 @@ msgstr ""
"VAROVANIE: Položky ktoré existujú v tomto prostriedku, Sa nemusia načitať "
"správne."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nepodarilo sa načítať prostriedok."
@@ -5933,6 +6018,11 @@ msgstr "Alt+Potiahnutie: Pohyb"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Potiahnutie: Pohyb"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Vymazať označený node alebo prechod."
@@ -5964,6 +6054,10 @@ msgid "Scale Mode"
msgstr "Zmena Veľkosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6060,20 +6154,44 @@ msgstr "Zamknúť označený objekt na mieste (už sa s ním nebude dať hýbať
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Zamknúť Označené"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Odomknúť označený objekt (dá sa s ním hýbať)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Odomknúť Označené"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Uistite sa že sa nedá označiť dieťa objektu."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Pridať Označené do Skupiny"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Aby ste označili dieťa objektu tak mu musíte obnoviť schopnosť."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Odskupiť Označené"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Nastavenia Kostry"
@@ -7734,6 +7852,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Nahradiť..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8273,6 +8396,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Obnoviť na východzie"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9044,6 +9180,30 @@ msgstr "Súbor:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Pridať Node"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profily k dispozícii:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Mesh je prázdny!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Naozaj chcete odstrániť všetky pripojenia z tohto signálu?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Konfigurovať Prichytenie"
@@ -9068,20 +9228,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Pridať Node"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Meno Node-u:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Načítať predvolené"
@@ -9099,6 +9245,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Súbor:"
@@ -11563,11 +11713,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Nahradiť: "
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11842,6 +11987,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12817,63 +12976,68 @@ msgstr "Všetky vybrané"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13870,6 +14034,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14084,16 +14258,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14490,10 +14670,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index 402c9008e2..afb725022c 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -1,6 +1,6 @@
# Slovenian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# matevž lapajne <sivar.lapajne@gmail.com>, 2016-2018.
# Matjaž Vitas <matjaz.vitas@gmail.com>, 2017-2018.
@@ -347,6 +347,10 @@ msgid "Duplicate Key(s)"
msgstr "Animacija Podvoji ključe"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Animacija Izbriši ključe"
@@ -528,6 +532,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Spremeni Obseg Ključev"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1544,6 +1553,10 @@ msgid "Invalid name."
msgstr "Neveljavno ime."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Veljavni znaki:"
@@ -1655,7 +1668,9 @@ msgstr "Posodabljanje scene..."
msgid "[empty]"
msgstr "[prazno]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[neshranjeno]"
@@ -1677,6 +1692,7 @@ msgstr "Ustvarite Mapo"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Ime:"
@@ -2192,7 +2208,7 @@ msgid "Properties"
msgstr "Lastnosti"
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2352,6 +2368,20 @@ msgstr "Lastnosti"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Novo ime:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2361,6 +2391,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Lastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Lastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Lastnosti"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Izhod:"
@@ -3177,6 +3230,20 @@ msgstr ""
"poteku igre."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Usklajuj Spremembe Prizora"
@@ -4332,6 +4399,11 @@ msgstr "%d več datotek"
msgid "Find:"
msgstr "Najdi"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Zamenjaj"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4357,6 +4429,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Zamenjaj Vse"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4369,7 +4446,7 @@ msgstr "Zamenjaj"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Zamenjaj Vse"
#: editor/find_in_files.cpp
@@ -4600,6 +4677,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Napaka pri nalaganju vira."
@@ -6161,6 +6244,11 @@ msgstr "Alt+Drag: Premakni"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Drag: Premakni"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Odstrani izbrano sled."
@@ -6193,6 +6281,10 @@ msgid "Scale Mode"
msgstr "Način Obsega (R)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6303,20 +6395,44 @@ msgstr "Izbrani predmet zakleni na svoje mesto (ni ga mogoče premakniti)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Izbira Orodja"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Odkleni izbrani predmet (lahko ga premaknete)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Izbriši Izbrano"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Odstrani izbrano"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Odstrani izbrano"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Posameznik"
@@ -8004,6 +8120,11 @@ msgid "Find in Files..."
msgstr "Filtriraj datoteke..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Filtriraj datoteke..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8545,6 +8666,19 @@ msgid "Toggle Freelook"
msgstr "Preklopi Svobodni Pregled"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Naložite Prevzeto"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Preoblikovanje"
@@ -9329,6 +9463,29 @@ msgstr "Člani"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Poišči tip vozlišča"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Na voljo Nodes:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Model je prazen!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Animacija Preimenuj sled"
@@ -9353,20 +9510,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Poišči tip vozlišča"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Poišči tip vozlišča"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Naložite Prevzeto"
@@ -9383,6 +9526,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Člani"
@@ -11876,11 +12023,6 @@ msgid "Batch Rename"
msgstr "Preimenuj"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Zamenjaj"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12169,6 +12311,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -13166,63 +13322,68 @@ msgstr "Celotna izbira"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -14234,6 +14395,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14447,16 +14618,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14867,10 +15044,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index 8fcc01ee4c..6669292e99 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -1,6 +1,6 @@
# Albanian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Igli <iglibh@outlook.com>, 2018.
# Enrik Qose <enrikqose@gmail.com>, 2019.
@@ -324,6 +324,10 @@ msgid "Duplicate Key(s)"
msgstr "Dyfisho Key(s)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Fshi Key(s)"
@@ -488,6 +492,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1481,6 +1489,10 @@ msgid "Invalid name."
msgstr "Emër i palejuar."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Karakteret e lejuar:"
@@ -1592,7 +1604,9 @@ msgstr "Duke përditësuar skenën..."
msgid "[empty]"
msgstr "[bosh]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[e paruajtur]"
@@ -1614,6 +1628,7 @@ msgstr "Krijo një Folder"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Emri:"
@@ -2138,7 +2153,7 @@ msgstr "Vetitë"
#: editor/editor_help.cpp
#, fuzzy
-msgid "override:"
+msgid "overrides %s:"
msgstr "Mbishkruaj"
#: editor/editor_help.cpp
@@ -2286,6 +2301,20 @@ msgstr "Vetitë e Temës"
msgid "Property:"
msgstr "Vetitë:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Vlerë e Re:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2295,6 +2324,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Vendos të Shumëfishta:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Vetitë"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Vetitë"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Vetitë"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Përfundimi:"
@@ -3116,6 +3168,20 @@ msgstr ""
"opsion është i aktivizuar."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Sinkronizo Nryshimet e Skenës"
@@ -4264,6 +4330,11 @@ msgstr "Gjej në Skedarët"
msgid "Find:"
msgstr "Gjej:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Zëvendëso: "
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Folderi:"
@@ -4287,6 +4358,11 @@ msgstr "Gjej..."
msgid "Replace..."
msgstr "Zëvendëso..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Hap Skedarët"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Gjej: "
@@ -4296,7 +4372,8 @@ msgid "Replace: "
msgstr "Zëvendëso: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
msgstr "Zëvendëso të gjitha (pa kthim pas)"
#: editor/find_in_files.cpp
@@ -4528,6 +4605,12 @@ msgstr ""
"Kujdes: Egzistojnë asete që përdorin këtë resurs, ato mund të ndalojnë të "
"ngarkohen si duhet."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Dështoi të ngarkojë resursin."
@@ -5984,6 +6067,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Nyja e zgjedhur nuk është një 'Viewport'!"
@@ -6013,6 +6100,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6108,20 +6199,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Zgjidh"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Zgjidh"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Zgjidh"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Zgjidh"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7755,6 +7870,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Zëvendëso..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8282,6 +8402,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Ngarko të Parazgjedhur"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9042,6 +9175,29 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Vetitë:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Clipboard-i është bosh"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "A jeni i sigurt që doni të hiqni të gjitha lidhjet nga ky sinjal?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr ""
@@ -9065,19 +9221,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Emri i Nyjes:"
-
-#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Ngarko të Parazgjedhur"
@@ -9096,6 +9239,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr " Skedarët"
@@ -11501,11 +11648,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Zëvendëso: "
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11786,6 +11928,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12754,63 +12910,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13783,6 +13944,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13991,16 +14162,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14395,10 +14572,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index afd2bbdd52..fb013c20a9 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -1,6 +1,6 @@
# Serbian (cyrillic) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Александар Урошевић <nicecubedude@gmail.com>, 2017.
@@ -359,6 +359,11 @@ msgstr "Дуплирај кључеве"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Додај оквир"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Delete Key(s)"
msgstr "Уколни кључеве"
@@ -549,6 +554,11 @@ msgstr "Ова операција не ради за Безиер уређива
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Увећај кључеве"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1601,6 +1611,10 @@ msgid "Invalid name."
msgstr "Неважеће име."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Важећа слова:"
@@ -1712,7 +1726,9 @@ msgstr "Ажурирам сцену..."
msgid "[empty]"
msgstr "(празно)"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "[unsaved]"
msgstr "[несачувано]"
@@ -1735,6 +1751,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Име:"
@@ -2284,7 +2301,7 @@ msgstr "Особине"
#: editor/editor_help.cpp
#, fuzzy
-msgid "override:"
+msgid "overrides %s:"
msgstr "препиши"
#: editor/editor_help.cpp
@@ -2449,6 +2466,20 @@ msgstr "Особине"
msgid "Property:"
msgstr "Особина:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Ново име:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
#, fuzzy
@@ -2460,6 +2491,29 @@ msgstr "Постави %s"
msgid "Set Multiple:"
msgstr "Постави Више:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Особине"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Особине"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Копирај Путању Скрипте"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Излаз:"
@@ -3300,6 +3354,20 @@ msgstr ""
"укључена."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Синхронизуј промене сцене"
@@ -4534,6 +4602,11 @@ msgstr "Нађи плочицу"
msgid "Find:"
msgstr "Нађи"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Замени"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4562,6 +4635,11 @@ msgstr "Тражи..."
msgid "Replace..."
msgstr "Замени..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Замени све"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4574,7 +4652,7 @@ msgstr "Замени"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Замени све"
#: editor/find_in_files.cpp
@@ -4814,6 +4892,12 @@ msgstr ""
"УПОЗОРЕЊЕ: Постоје средства која користе овај ресурс, могу престати да се "
"учитавају правилно."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Грешка при учитавању ресурса."
@@ -6446,6 +6530,11 @@ msgstr "Alt+вучење: померање"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+вучење: померање"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Обриши одабрани чвор или прелаз."
@@ -6478,6 +6567,10 @@ msgid "Scale Mode"
msgstr "Режим Увећања"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6588,20 +6681,44 @@ msgstr "Закључај одабрани објекат на месту (нем
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Откључај одабрано"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Уверава се да деца објекта не могу бити изабрана."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Групиши Одабрано"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Врати могућност бирања деце објекта."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Разгрупиши Одабрано"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Синглетон"
@@ -8413,6 +8530,11 @@ msgid "Find in Files..."
msgstr "Филтрирај датотеке..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Замени..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Контекстуална помоћ"
@@ -8989,6 +9111,19 @@ msgid "Toggle Freelook"
msgstr "Укљ./Искљ. режим слободног гледања"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Учитај уобичајено"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Трансформација"
@@ -9806,6 +9941,30 @@ msgstr "Увези тему"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Врста"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Особине"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Име фајла је празно."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Да ли сигурно желиш да отвориш више одједног пројекта?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Измени име анимације"
@@ -9831,21 +9990,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Врста"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Додај ствар"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Врста Чвора"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Учитај уобичајено"
@@ -9864,6 +10008,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Додај ствар"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Тема"
@@ -12833,11 +12982,6 @@ msgstr "Преименуј Гомилу"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Replace:"
-msgstr "Замени"
-
-#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
msgstr "Предметак"
@@ -13174,6 +13318,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Save New Scene As..."
msgstr "Упамти Нову Сцену Као..."
@@ -14337,64 +14495,72 @@ msgstr "Испуни одабрано"
msgid "End of inner exception stack trace"
msgstr "Крај Унутрашњег израза потражне наслаге"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+#, fuzzy
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"НавигационаМрежа ресурс мора бити постављен или креиран да би овај чвор "
+"радио."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
#, fuzzy
msgid "Bake NavMesh"
msgstr "Испеци НавМрежу"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Обриши навигациону мрежу."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Подешавање конфигурације..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Израчунавање величине мреже..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Прављење висинског поља..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Маркирање проходних троуглова..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Конструисање компактног висинског поља..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Ерозија проходне површине..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Партиционирање..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Прављење контура..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Прављење полигонске мреже..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Конвертовање у природну навигациону мрежу..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Поставке генератора навигационе мреже:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Анализирање геометрије..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Готово!"
@@ -15506,6 +15672,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Многоугао затамљивач за овај затамљивач је празан. Молимо нацртај моногоугао."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
#, fuzzy
msgid ""
@@ -15795,14 +15971,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "ТачкаСветло са углом ширим од 90 степени не може бацати сенке."
-#: scene/3d/navigation_mesh.cpp
-#, fuzzy
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"НавигационаМрежа ресурс мора бити постављен или креиран да би овај чвор "
-"радио."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
#, fuzzy
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
@@ -15811,6 +15984,12 @@ msgstr ""
"НавМрежнаИнстанца мора бити дете или прадете Навигационог чвора. Само "
"обезбећује навигационе податке."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -16291,10 +16470,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
#, fuzzy
msgid "Assignment to function."
msgstr "Додељивање функцији."
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index 1a2f45aec3..9a5bbeb2ec 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -1,6 +1,6 @@
# Serbian (latin) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Milos Ponjavusic <brane@branegames.com>, 2018.
# BLu <blmasfon@gmail.com>, 2018.
@@ -334,6 +334,10 @@ msgid "Duplicate Key(s)"
msgstr "Dupliraj Ključeve"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Obriši Ključeve"
@@ -505,6 +509,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animacija Skaliraj Ključeve"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1466,6 +1475,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1570,7 +1583,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1591,6 +1606,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2067,7 +2083,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2205,6 +2221,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Vrednost:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2214,6 +2244,28 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Obriši Selekciju"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Animacija Uduplaj Ključeve"
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2955,6 +3007,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4021,6 +4087,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4044,6 +4114,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4053,7 +4127,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4269,6 +4343,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5723,6 +5803,11 @@ msgstr "Izbriši označeni ključ(eve)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Izbriši označeni ključ(eve)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Obriši Selekciju"
@@ -5751,6 +5836,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5845,20 +5934,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Animacija Obriši Ključeve"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Dupliraj Selektovane Ključeve"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Obriši Selekciju"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Obriši Selekciju"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7485,6 +7598,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8004,6 +8121,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8743,39 +8872,47 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Animacija Dodaj Kanal"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Cancel Item Rename"
-msgstr "Animacija Preimenuj Kanal"
+msgid "Available Node-based types:"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Animacija Dodaj Kanal"
+msgid "Cancel Item Rename"
+msgstr "Animacija Preimenuj Kanal"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8795,6 +8932,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11191,10 +11332,6 @@ msgid "Batch Rename"
msgstr "Animacija Preimenuj Kanal"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11471,6 +11608,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12413,63 +12564,68 @@ msgstr "Sve sekcije"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13419,6 +13575,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13625,16 +13791,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14029,10 +14201,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index f5afd7df7e..b8c190d92a 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -1,6 +1,6 @@
# Swedish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# bergmarklund <davemcgroin@gmail.com>, 2017, 2018.
# Christoffer Sundbom <christoffer_karlsson@live.se>, 2017, 2021.
@@ -341,6 +341,10 @@ msgid "Duplicate Key(s)"
msgstr "Duplicera Nycklar"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ta bort Nycklar"
@@ -510,6 +514,11 @@ msgstr ""
"spår."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skala Nycklar"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1496,6 +1505,10 @@ msgid "Invalid name."
msgstr "Ogiltigt namn."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Giltiga tecken:"
@@ -1600,7 +1613,9 @@ msgstr "Uppdaterar scen..."
msgid "[empty]"
msgstr "[tom]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[inte sparad]"
@@ -1621,6 +1636,7 @@ msgstr "Skapa Mapp"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Namn:"
@@ -2130,7 +2146,8 @@ msgid "Properties"
msgstr "Egenskaper"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "skriv över:"
#: editor/editor_help.cpp
@@ -2289,6 +2306,20 @@ msgstr "Egenskaper"
msgid "Property:"
msgstr "Egenskap:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Värde"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2298,6 +2329,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Sätt Flera:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Egenskaper"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Egenskaper"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopiera Sökvägen"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -3112,6 +3166,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Synkronisera scenändringar"
@@ -4242,6 +4310,11 @@ msgstr "%d fler filer"
msgid "Find:"
msgstr "Hitta:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Ersätt:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Mapp:"
@@ -4267,6 +4340,11 @@ msgstr "Hitta..."
msgid "Replace..."
msgstr "Ersätt..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ersätt Alla"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Hitta: "
@@ -4277,7 +4355,7 @@ msgstr "Ersätt: "
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Ersätt Alla"
#: editor/find_in_files.cpp
@@ -4510,6 +4588,12 @@ msgstr ""
"VARNING: Det finns tillgångar som använder den här resursen, de kan sluta "
"laddas in korrekt."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Misslyckades att ladda resurs."
@@ -6006,6 +6090,11 @@ msgstr "Ta bort vald Rect."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Ta bort vald Rect."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Ta bort valt spår."
@@ -6035,6 +6124,10 @@ msgid "Scale Mode"
msgstr "Växla Läge"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6132,20 +6225,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Välj"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Ta bort Nod(er)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Ser till att objektets barn inte är valbara."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ta bort Urval"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Återställer objektets barns egenskap att väljas."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Ta bort Urval"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Singleton"
@@ -7825,6 +7942,11 @@ msgid "Find in Files..."
msgstr "Filtrera Filer..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Ersätt..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8368,6 +8490,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Ladda Standard"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformera"
@@ -9143,6 +9278,30 @@ msgstr "Importera Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Tillgängliga Profiler:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Filnamn är tom."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Är du säker att du vill ta bort alla kopplingar från denna signal?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Byt Namn På Spår"
@@ -9168,20 +9327,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Typ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nod typ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Ladda Standard"
@@ -9198,6 +9343,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11654,11 +11803,6 @@ msgid "Batch Rename"
msgstr "Byt namn"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Ersätt:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11940,6 +12084,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Save New Scene As..."
msgstr "Spara Ny Scen Som..."
@@ -12918,63 +13076,68 @@ msgstr "Alla urval"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partitionerar..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Skapar konturer..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Klar!"
@@ -13952,6 +14115,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14176,16 +14349,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14588,10 +14767,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index 5bd7dfcbf0..b7c8cf73e3 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -1,6 +1,6 @@
# Tamil translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 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.
@@ -336,6 +336,10 @@ msgid "Duplicate Key(s)"
msgstr "அசைவூட்டு போலிபச்சாவிகள்"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -504,6 +508,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1461,6 +1469,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1565,7 +1577,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1586,6 +1600,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2060,7 +2075,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2196,6 +2211,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2205,6 +2233,28 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "அனைத்து தேர்வுகள்"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "அசைவூட்டு போலிபச்சாவிகள்"
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2945,6 +2995,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4008,6 +4072,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4031,6 +4099,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4040,7 +4112,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4256,6 +4328,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5697,6 +5775,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "அனைத்து தேர்வுகள்"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "அனைத்து தேர்வுகள்"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5725,6 +5808,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5819,20 +5906,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "அசைவூட்டு போலிபச்சாவிகள்"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "அனைத்து தேர்வுகள்"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "அனைத்து தேர்வுகள்"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7439,6 +7550,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7951,6 +8066,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8677,39 +8804,47 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "அசைவூட்டு பாதை சேர்"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Cancel Item Rename"
-msgstr "அசைவூட்டு பாதைக்கு மறுபெயர் இடு"
+msgid "Available Node-based types:"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "அசைவூட்டு பாதை சேர்"
+msgid "Cancel Item Rename"
+msgstr "அசைவூட்டு பாதைக்கு மறுபெயர் இடு"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8729,6 +8864,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11092,10 +11231,6 @@ msgid "Batch Rename"
msgstr "அசைவூட்டு பாதைக்கு மறுபெயர் இடு"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11372,6 +11507,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12310,63 +12459,68 @@ msgstr "அனைத்து தேர்வுகள்"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13309,6 +13463,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13515,16 +13679,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13919,10 +14089,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/te.po b/editor/translations/te.po
index 75ed723328..448aa534eb 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -1,21 +1,22 @@
# Telugu translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# suresh p <suresh9247@gmail.com>, 2019, 2020.
+# Jagadeesh Vijay Varma <jagadeeshvarma.b@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2020-09-15 07:17+0000\n"
-"Last-Translator: suresh p <suresh9247@gmail.com>\n"
+"PO-Revision-Date: 2021-12-26 17:18+0000\n"
+"Last-Translator: Jagadeesh Vijay Varma <jagadeeshvarma.b@gmail.com>\n"
"Language-Team: Telugu <https://hosted.weblate.org/projects/godot-engine/"
"godot/te/>\n"
"Language: te\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 4.3-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -39,9 +40,8 @@ msgid "Invalid input %i (not passed) in expression"
msgstr "వ్యక్తీకరణలో చెల్లని ఇన్పుట్ %i (ఆమోదించబడలేదు)"
#: core/math/expression.cpp
-#, fuzzy
msgid "self can't be used because instance is null (not passed)"
-msgstr "తనకు తానుగా(self) ఉపయోగించుకోలేదు ఎందుకంటే instance ఒక శూన్యం (ఆమోదించబడలేదు )"
+msgstr "స్వయం ఉపయోగించబడదు ఎందుకంటే ఉదాహరణ శూన్యం (ఉత్తీర్ణత లేదు)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -320,6 +320,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -482,6 +486,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -899,7 +907,7 @@ msgstr ""
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
-msgstr ""
+msgstr "సంకేతాలు"
#: editor/connections_dialog.cpp
msgid "Filter signals"
@@ -1434,6 +1442,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1538,7 +1550,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1559,6 +1573,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -1797,7 +1812,7 @@ msgstr ""
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
msgid "Import"
-msgstr ""
+msgstr "దిగుమతి"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -2030,7 +2045,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2039,7 +2054,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Methods"
-msgstr ""
+msgstr "పద్ధతులు"
#: editor/editor_help.cpp
msgid "Theme Properties"
@@ -2051,7 +2066,7 @@ msgstr ""
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constants"
-msgstr ""
+msgstr "స్థిరాంకాలు"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Fonts"
@@ -2067,7 +2082,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr ""
+msgstr "గణనలు"
#: editor/editor_help.cpp
msgid "Property Descriptions"
@@ -2166,6 +2181,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2175,6 +2203,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2221,7 +2269,7 @@ msgstr ""
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
-msgstr ""
+msgstr "నోడ్"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
@@ -2913,6 +2961,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3971,6 +4033,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3994,6 +4060,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4003,7 +4073,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4217,6 +4287,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5638,6 +5714,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5666,6 +5746,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5760,20 +5844,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -6064,7 +6168,7 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat 1"
-msgstr ""
+msgstr "ఫ్లాట్ 1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
@@ -7373,6 +7477,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7885,6 +7993,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8596,37 +8716,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8646,6 +8774,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10987,10 +11119,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11263,6 +11391,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12192,63 +12334,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13182,6 +13329,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13388,16 +13545,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13792,10 +13955,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/th.po b/editor/translations/th.po
index e1c5f6053d..acb8f8cbf3 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -1,6 +1,6 @@
# Thai translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Kaveeta Vivatchai <goodytong@gmail.com>, 2017.
# Poommetee Ketson (Noshyaar) <poommetee@protonmail.com>, 2017-2018.
@@ -335,6 +335,11 @@ msgid "Duplicate Key(s)"
msgstr "สร้างคีย์ซ้ำอีกอัน"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "เพิ่ม %d เฟรม(วินาที)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "ลบคีย์"
@@ -502,6 +507,11 @@ msgid ""
msgstr "ตัวเลือกนี้ไม่สามารถทำงานกับแทร็กเบซิเยร์ เนื่องจากเป็นแค่แทร็กเดี่ยว"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "ปรับคีย์แอนิเมชัน"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1485,6 +1495,10 @@ msgid "Invalid name."
msgstr "ชื่อผิดพลาด"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "ตัวอักษรที่ใช้ได้:"
@@ -1591,7 +1605,9 @@ msgstr "อัพเดทฉาก..."
msgid "[empty]"
msgstr "[ว่างเปล่า]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ไฟล์ใหม่]"
@@ -1612,6 +1628,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "ชื่อ:"
@@ -2107,7 +2124,8 @@ msgid "Properties"
msgstr "คุณสมบัติ"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "แทนที่:"
#: editor/editor_help.cpp
@@ -2247,6 +2265,20 @@ msgstr "คุณสมบัติธีม"
msgid "Property:"
msgstr "คุณสมบัติ:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(ค่า)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2256,6 +2288,29 @@ msgstr "ตั้ง %s"
msgid "Set Multiple:"
msgstr "กำหนด หลายอย่าง:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "คุณสมบัติ"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "คุณสมบัติ"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "คัดลอกตำแหน่งสคริปต์"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "เอาท์พุต:"
@@ -3042,6 +3097,20 @@ msgid ""
msgstr "เมื่อตัวเลือกนี้เปิดใช้งาน ตัวนำทาง mesh และโพลีกอนจะถูกมองเห็นในโปรเจกต์ที่ทำงานอยู่"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "ซิงค์การเปลี่ยนแปลงฉาก"
@@ -4171,6 +4240,10 @@ msgstr "ค้นหาในไฟล์"
msgid "Find:"
msgstr "ค้นหา:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "แทนที่:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "โฟลเดอร์:"
@@ -4195,6 +4268,11 @@ msgstr "ค้นหา..."
msgid "Replace..."
msgstr "แทนที่..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "แทนที่ทั้งหมด"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "ค้นหา: "
@@ -4204,8 +4282,9 @@ msgid "Replace: "
msgstr "แทนที่: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "แทนที่ทั้งหมด(แก้ไขไม่ได้)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "แทนที่ทั้งหมด"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4418,6 +4497,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "คำเตือน: มีเนื้อหาที่ใช้ทรัพยากรนี้อยู่ ซึ่งอาจทำให้การโหลดเกิดการหยุดขึ้น"
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "โหลดทรัพยากรไม่ได้"
@@ -5869,6 +5954,11 @@ msgstr "Alt+ลาก: ย้าย"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+ลาก: ย้าย"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "ลบโหนดหรือทรานสิชันที่เลือก"
@@ -5897,6 +5987,10 @@ msgid "Scale Mode"
msgstr "โหมดปรับขนาด"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5993,20 +6087,44 @@ msgstr "ล็อคไม่ให้ออบเจกต์ที่เลื
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "ปลดล็อคที่เลือก"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "โหนดลูกของออบเจกต์ไม่สามารถถูกเลือก"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "จัดกลุ่มที่เลือก"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "คืนค่าความสามารถในการถูกเลือกกับโหนดลูกของออบเจกต์"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "เลิกจัดกลุ่มที่เลือก"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "ตั้งค่าโครง"
@@ -7652,6 +7770,11 @@ msgid "Find in Files..."
msgstr "ค้นหาในไฟล์..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "แทนที่..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "ค้นหาคำที่เลือกในคู่มือ"
@@ -8202,6 +8325,19 @@ msgid "Toggle Freelook"
msgstr "เปิด/ปิดมุมมองอิสระ"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "รีเซ็ตเป็นค่าเริ่มต้น"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "การแปลง"
@@ -8973,6 +9109,30 @@ msgstr "นำเข้าธีม"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "ชนิด"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "โปรไฟล์ที่มีให้ใช้:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "ชื่อไฟล์ว่างเปล่า"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "ยืนยันการเปิดโปรเจกต์มากกว่า 1 โปรเจกต์?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "เปลี่ยนชื่อแทร็กแอนิเมชัน"
@@ -8998,21 +9158,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "ชนิด"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "เพิ่มไอเทม"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "ชนิดโหนด"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "โหลดค่าเริ่มต้น"
@@ -9031,6 +9176,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "เพิ่มไอเทม"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "ธีม"
@@ -11499,10 +11649,6 @@ msgid "Batch Rename"
msgstr "เปลี่ยนชื่อหลายรายการ"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "แทนที่:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "คำนำหน้า:"
@@ -11781,6 +11927,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "บันทึกฉากใหม่เป็น..."
@@ -12737,63 +12897,68 @@ msgstr "เติมส่วนที่เลือก"
msgid "End of inner exception stack trace"
msgstr "สิ้นสุดสแตคข้อผิดพลาดภายใน"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "ต้องมี NavigationMesh เพื่อให้โหนดนี้ทำงานได้"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Bake NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ล้าง Mesh นำทาง"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "กำลังจัดการโครงร่าง..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "กำลังคำนวณขนาดกริด..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "กำลังสร้างสนามความสูง..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "กำลังกำหนดพื้นผิวที่เดินผ่านได้..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "กำลังบีบอัดสนามความสูง..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "บีบแคบส่วนที่เดินผ่านได้..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "กำลังแบ่งส่วน..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "กำลังสร้างคอนทัวร์..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "กำลังสร้าง Polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "กำลังแปลงกลับเป็น Mesh นำทาง..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "การตั้งค่าการสร้างพื้นผิวนำทาง:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "วิเคราะห์พื้นผิว..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "เสร็จสิ้น!"
@@ -13786,6 +13951,16 @@ msgstr "ต้องมีรูปหลายเหลี่ยมเพื่
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "รูปหลายเหลี่ยมของตัวบังแสงนี้ว่างเปล่า กรุณาวาดโพลีกอน"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14015,11 +14190,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight ที่มีมุมมากกว่า 90 ไม่สามารถสร้างเงา"
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "ต้องมี NavigationMesh เพื่อให้โหนดนี้ทำงานได้"
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14027,6 +14202,12 @@ msgstr ""
"NavigationMeshInstance ต้องเป็นโหนดลูก/หลานของโหนด Navigation "
"โดยจะให้ข้อมูลการนำทางเท่านั้น"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14456,10 +14637,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "การกำหนดให้กับฟังก์ชัน"
diff --git a/editor/translations/tl.po b/editor/translations/tl.po
index 4a73228fb1..3e48f9d911 100644
--- a/editor/translations/tl.po
+++ b/editor/translations/tl.po
@@ -1,14 +1,14 @@
# Tagalog translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
-# Napstaguy04 <brokenscreen3@gmail.com>, 2021.
+# Napstaguy04 <brokenscreen3@gmail.com>, 2021, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-09 23:13+0000\n"
+"PO-Revision-Date: 2022-01-07 11:42+0000\n"
"Last-Translator: Napstaguy04 <brokenscreen3@gmail.com>\n"
"Language-Team: Tagalog <https://hosted.weblate.org/projects/godot-engine/"
"godot/tl/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 "
"|| n % 10 == 6 || n % 10 == 9);\n"
-"X-Generator: Weblate 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -38,7 +38,7 @@ msgstr "Kulang na bytes para sa decoding bytes, o di-wastong format."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Di-wastong input %i (di naipasa) sa expression"
+msgstr "Di-wastong input %i (di naipasa) sa ekspresyon"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -324,6 +324,10 @@ msgid "Duplicate Key(s)"
msgstr "Doblehin ang (mga) Key"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Tanggalin Ang (mga) Key"
@@ -495,6 +499,11 @@ msgstr ""
"ito."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Mga Key ng Anim Scale"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1471,6 +1480,10 @@ msgid "Invalid name."
msgstr "Di-wastong pangalan."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Mga Pinapayagang Karakter:"
@@ -1576,7 +1589,9 @@ msgstr ""
msgid "[empty]"
msgstr "[wala]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[di-nakasave]"
@@ -1597,6 +1612,7 @@ msgstr "Gumawa ng Folder"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Pangalan:"
@@ -2069,7 +2085,8 @@ msgid "Properties"
msgstr "Mga Katangian"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "ipagpalit:"
#: editor/editor_help.cpp
@@ -2209,6 +2226,20 @@ msgstr "Katangian ng Tema"
msgid "Property:"
msgstr "Katangian:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(halaga)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2216,8 +2247,31 @@ msgstr "Itakda ang %s"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
+msgstr "Magtakda ng Marami:"
+
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Katangian"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Katangian"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopyahin ang Kinaroroonan"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Kalabasan:"
@@ -2608,15 +2662,17 @@ msgstr "Buksan ang Talaan ng mga Proyekto?"
#: editor/editor_node.cpp
msgid "Save & Quit"
-msgstr ""
+msgstr "I-save at Umalis"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr ""
+msgstr "I-save ang (mga sumusunod na) binagong eksena bago umalis?"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before opening Project Manager?"
msgstr ""
+"I-save ang (mga sumusunod na) binagong eksena bago buksan ang Tagapangasiwa "
+"ng Proyekto?"
#: editor/editor_node.cpp
msgid ""
@@ -2726,7 +2782,7 @@ msgstr "Karaniwan"
#: editor/editor_node.cpp editor/editor_resource_picker.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
msgid "Show in FileSystem"
-msgstr ""
+msgstr "Ipakita sa FileSystem"
#: editor/editor_node.cpp
msgid "Play This Scene"
@@ -2885,7 +2941,7 @@ msgstr "Magluwas..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
-msgstr ""
+msgstr "Ikabit ang Android Build Template..."
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
@@ -2961,6 +3017,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -2990,7 +3060,7 @@ msgstr "Editor"
#: editor/editor_node.cpp
msgid "Editor Settings..."
-msgstr ""
+msgstr "Kaayusan ng Editor..."
#: editor/editor_node.cpp
msgid "Editor Layout"
@@ -3003,6 +3073,7 @@ msgstr "Kumuha ng Screenshot"
#: editor/editor_node.cpp
msgid "Screenshots are stored in the Editor Data/Settings Folder."
msgstr ""
+"Nakaimpok lahat ng mga screenshot sa Folder ng Data/Kaayusan ng Editor."
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
@@ -3030,7 +3101,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Manage Export Templates..."
-msgstr ""
+msgstr "Pangasiwaan ang mga Export Template..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
@@ -3066,7 +3137,7 @@ msgstr "Tungkol sa Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
-msgstr "Suportahan ang Development ng Godot"
+msgstr "Suportahan ang Paglalago ng Godot"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -3127,11 +3198,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "FileSystem"
-msgstr ""
+msgstr "FileSystem"
#: editor/editor_node.cpp
msgid "Inspector"
-msgstr "Taga-siyasat"
+msgstr "Tagasuri"
#: editor/editor_node.cpp
msgid "Expand Bottom Panel"
@@ -3943,7 +4014,7 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Sort by Last Modified"
-msgstr ""
+msgstr "Ayusin ayon sa Huling Binago"
#: editor/filesystem_dock.cpp
msgid "Sort by First Modified"
@@ -4018,6 +4089,10 @@ msgstr "Hanapin sa mga file"
msgid "Find:"
msgstr "Hanapin:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4041,6 +4116,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Palitan Lahat"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4050,8 +4130,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Palitan Lahat"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4264,6 +4345,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5690,6 +5777,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Drag: Maglipat ng napiling node."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Drag: Maglipat ng napiling node."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Itakda ang posisyon ng pivot sa node."
@@ -5718,6 +5810,10 @@ msgid "Scale Mode"
msgstr "Paraan ng Pagpapalaki"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5814,20 +5910,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Doblehin ang (mga) Napiling Key"
+
+#: 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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Doblehin ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ipangkat Ang Napili"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Ibuwag Ang Pangkat ng Napili"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Pagsasaayos ng Kalansay"
@@ -6884,11 +7004,11 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
-msgstr ""
+msgstr "Linisin ang UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Settings"
-msgstr ""
+msgstr "Kaayusan ng Grid"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Snap"
@@ -6940,7 +7060,7 @@ msgstr ""
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Rename Resource"
-msgstr ""
+msgstr "Baguhin ang Pangalan ng Resource"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -6958,19 +7078,19 @@ msgstr ""
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_editor.cpp
msgid "Instance:"
-msgstr ""
+msgstr "Instance:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Type:"
-msgstr ""
+msgstr "Uri:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
msgid "Open in Editor"
-msgstr ""
+msgstr "Buksan sa Editor"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Load Resource"
@@ -7030,15 +7150,15 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving file!"
-msgstr ""
+msgstr "Nabigong maimpok ang file!"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme."
-msgstr ""
+msgstr "Nabigong maimpok ang tema."
#: editor/plugins/script_editor_plugin.cpp
msgid "Error Saving"
-msgstr ""
+msgstr "Nabigo ang Pagiimpok"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme."
@@ -7079,7 +7199,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr ""
+msgstr "Iangkat ang Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
@@ -7117,11 +7237,11 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter methods"
-msgstr ""
+msgstr "Salain ang mga method"
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
-msgstr ""
+msgstr "Pagkakaayos"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
@@ -7178,31 +7298,31 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme"
-msgstr ""
+msgstr "Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme..."
-msgstr ""
+msgstr "Magangkat ng Tema..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
-msgstr ""
+msgstr "Sariwain ang Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme"
-msgstr ""
+msgstr "Iimpok ang Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close All"
-msgstr ""
+msgstr "Isara lahat"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Docs"
-msgstr ""
+msgstr "Isara ang Dokumentasyon"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
-msgstr ""
+msgstr "Patakbuhin"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -7210,7 +7330,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
-msgstr ""
+msgstr "Maghanap"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Into"
@@ -7240,7 +7360,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
msgid "Online Docs"
-msgstr ""
+msgstr "Dokumentasyong Online"
#: editor/plugins/script_editor_plugin.cpp
msgid "Open Godot online documentation."
@@ -7290,7 +7410,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Target"
-msgstr ""
+msgstr "Pinagtututukan"
#: editor/plugins/script_text_editor.cpp
msgid ""
@@ -7324,7 +7444,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
-msgstr ""
+msgstr "Pumili ng Kulay"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Convert Case"
@@ -7427,6 +7547,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Magsala ng mga File..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7531,19 +7656,19 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top Orthogonal"
-msgstr ""
+msgstr "Taas Ortogonal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top Perspective"
-msgstr ""
+msgstr "Perspektibong Taas"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom Orthogonal"
-msgstr ""
+msgstr "Babang Ortogonal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom Perspective"
-msgstr ""
+msgstr "Perspektibong Baba"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left Orthogonal"
@@ -7580,12 +7705,12 @@ msgstr ""
#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
#: editor/plugins/spatial_editor_plugin.cpp
msgid " [auto]"
-msgstr ""
+msgstr " [kusa]"
#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
#: editor/plugins/spatial_editor_plugin.cpp
msgid " [portals active]"
-msgstr ""
+msgstr " [mga aktibong portal]"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
@@ -7939,6 +8064,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Ibalik sa Dati"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -7953,39 +8091,39 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr ""
+msgstr "1 Tinginan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr ""
+msgstr "2 Tinginan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr ""
+msgstr "2 Tinginan (Alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr ""
+msgstr "3 Tinginan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr ""
+msgstr "3 Tinginan (Alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr ""
+msgstr "4 na Tinginan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Gizmos"
-msgstr ""
+msgstr "Mga Gizmo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr ""
+msgstr "Tingnan ang Pinagmulan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
-msgstr ""
+msgstr "Tignan ang Grid"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Portal Culling"
@@ -7998,7 +8136,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
-msgstr ""
+msgstr "Kaayusan..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
@@ -8042,11 +8180,11 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate (deg.):"
-msgstr ""
+msgstr "Ikot (deg.):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale (ratio):"
-msgstr ""
+msgstr "Laki (rasyo):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
@@ -8098,7 +8236,7 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
-msgstr ""
+msgstr "Walang laman ang Sprite!"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
@@ -8118,11 +8256,11 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Polygon2D"
-msgstr ""
+msgstr "Ipalit sa Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
-msgstr ""
+msgstr "Di-wastong geometry, hindi makagawa ng collision polygon."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D Sibling"
@@ -8138,7 +8276,7 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
-msgstr ""
+msgstr "Sprite"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Simplification: "
@@ -8146,19 +8284,19 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Shrink (Pixels): "
-msgstr ""
+msgstr "Palitiin (Pa-pixel): "
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Grow (Pixels): "
-msgstr ""
+msgstr "Palakihin (pa-Pixel): "
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Update Preview"
-msgstr ""
+msgstr "Sariwain ang Preview"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Settings:"
-msgstr ""
+msgstr "Kaayusan:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "No Frames Selected"
@@ -8190,7 +8328,7 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Empty"
-msgstr ""
+msgstr "Magdagdag ng Puwang"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
@@ -8198,7 +8336,7 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "(empty)"
-msgstr ""
+msgstr "(puwang)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Move Frame"
@@ -8214,11 +8352,11 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed:"
-msgstr ""
+msgstr "Bilis:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
-msgstr ""
+msgstr "Ipaulit-ulit"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animation Frames:"
@@ -8282,23 +8420,23 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr ""
+msgstr "Paraan ng Paguurong:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "Paguurong na Pa-pixel"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr ""
+msgstr "Paguurong na Pa-grid"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr ""
+msgstr "Kusang Paghahati"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr ""
+msgstr "Usog:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
@@ -8322,7 +8460,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "No colors found."
-msgstr ""
+msgstr "Walang kulay na nahanap."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} constant(s)"
@@ -8374,11 +8512,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Updating the editor"
-msgstr ""
+msgstr "Sinasariwa ang editor"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Finalizing"
-msgstr ""
+msgstr "Tinatapos ang pagsasariwa"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Filter:"
@@ -8507,7 +8645,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Color Items"
-msgstr ""
+msgstr "Alisin Lahat ng Color Items"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Rename Item"
@@ -8545,7 +8683,7 @@ msgstr "Magdagdag ng Constant Item"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Font Item"
-msgstr ""
+msgstr "Magdagdag ng Font Item"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Icon Item"
@@ -8593,7 +8731,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Types:"
-msgstr ""
+msgstr "Mga Uri:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Type:"
@@ -8652,6 +8790,29 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Magdagdag ng Uri"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Magagamit na mga Profile:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Walang laman ang Sprite!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Gusto mo bang alisin lahat ng pagkakabit sa hudyat na ito?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr ""
@@ -8674,18 +8835,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Magdagdag ng Uri"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Ipakita ang Karaniwan"
@@ -8702,8 +8851,12 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Magdagdag ng Bagong Uri ng Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
-msgstr ""
+msgstr "Tema:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Manage Items..."
@@ -10574,7 +10727,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Last Modified"
-msgstr ""
+msgstr "Huling Binago"
#: editor/project_manager.cpp
msgid "Edit Project"
@@ -11042,10 +11195,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11318,6 +11467,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -11413,7 +11576,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Editable Children"
-msgstr ""
+msgstr "Mababagong mga Anak"
#: editor/scene_tree_dock.cpp
msgid "Load As Placeholder"
@@ -11539,7 +11702,7 @@ msgstr ""
#: editor/scene_tree_editor.cpp
msgid "Open Script:"
-msgstr ""
+msgstr "Buksan ang Skrip:"
#: editor/scene_tree_editor.cpp
msgid ""
@@ -11552,6 +11715,8 @@ msgid ""
"Children are not selectable.\n"
"Click to make selectable."
msgstr ""
+"Hindi maaring piliin ang mga anak na ito.\n"
+"Pindutin upang gawing pilian."
#: editor/scene_tree_editor.cpp
msgid "Toggle Visibility"
@@ -12021,15 +12186,15 @@ msgstr ""
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
-msgstr ""
+msgstr "Sangunianan"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
-msgstr ""
+msgstr "Mga Sanggunianan: "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr ""
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
msgid "Step argument is zero!"
@@ -12141,15 +12306,15 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
-msgstr ""
+msgstr "Ayusin ang X Axis"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Y Axis"
-msgstr ""
+msgstr "Ayusin ang Y Axis"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Z Axis"
-msgstr ""
+msgstr "Ayusin ang Z Axis"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate X"
@@ -12181,7 +12346,7 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Paste Selects"
-msgstr ""
+msgstr "I-pasta Lahat ng Pinili"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
@@ -12193,7 +12358,7 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Settings"
-msgstr ""
+msgstr "Kaayusan ng GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Pick Distance:"
@@ -12247,65 +12412,70 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
-msgstr ""
+msgstr "Gumagawa ng polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
-msgstr ""
+msgstr "Sinisiyasat ang Geometry..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr ""
+msgstr "Tapos na!"
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -12427,7 +12597,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr ""
+msgstr "Magdagdag ng Variable"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
@@ -12483,7 +12653,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s)"
-msgstr ""
+msgstr "Magdagdag ng (mga) Node"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -12505,7 +12675,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Base Type"
-msgstr ""
+msgstr "Ibahin ang Punong-Uri"
#: modules/visual_script/visual_script_editor.cpp
msgid "Move Node(s)"
@@ -12549,7 +12719,7 @@ msgstr "Hindi makopya ang punsyon ng node."
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste VisualScript Nodes"
-msgstr ""
+msgstr "I-pasta ang mga node ng VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function with a function node."
@@ -12569,15 +12739,15 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Create Function"
-msgstr ""
+msgstr "Gumawa ng Punsyon"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr ""
+msgstr "Alisin ang Punsyon"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr ""
+msgstr "Alisin ang Variable"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
@@ -12609,7 +12779,7 @@ msgstr "Magdagdag ng mga Node..."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function..."
-msgstr ""
+msgstr "Magdagdag ng punsyon..."
#: modules/visual_script/visual_script_editor.cpp
msgid "function_name"
@@ -12673,7 +12843,7 @@ msgstr ""
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr ""
+msgstr "Di-wastong index ng pangalan ng katangian na '%s' sa node %s."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -12711,7 +12881,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
-msgstr ""
+msgstr "Nawawala ang pangalan ng pakete."
#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
@@ -12829,7 +12999,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
-msgstr ""
+msgstr "Di-wastong pangalan para sa pakete:"
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -12892,7 +13062,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "nagbalik ng may pagkakabigong #%d ang 'apksigner'"
#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
@@ -12904,11 +13074,13 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr ""
+msgstr "Niluluwas para sa Android"
#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
+"Di-wastong pangalan ng file! Kinikailangan ng Android App Bundle ang *.aab "
+"extension."
#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
@@ -13237,6 +13409,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13443,16 +13625,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13587,6 +13775,8 @@ msgstr ""
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"May nasagap na mga nodes na mali ang pagpapangalan, tignan ang output log "
+"para sa karagdagang mga detalye. Tinitigil."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
@@ -13656,7 +13846,7 @@ msgstr ""
#: scene/animation/animation_blend_tree.cpp
msgid "Animation not found: '%s'"
-msgstr ""
+msgstr "Di-mahanap ang animation: '%s'"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
@@ -13668,7 +13858,7 @@ msgstr ""
#: scene/animation/animation_tree.cpp
msgid "Invalid animation: '%s'."
-msgstr ""
+msgstr "Di-tugmang animasyon: '%s'."
#: scene/animation/animation_tree.cpp
msgid "Nothing connected to input '%s' of node '%s'."
@@ -13700,6 +13890,9 @@ msgid ""
"LMB: Set color\n"
"RMB: Remove preset"
msgstr ""
+"Kulay: #%s\n"
+"LMB: Magtakda ng kulay\n"
+"RMB: Magalis ng preset"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
@@ -13807,6 +14000,8 @@ msgid ""
"The Viewport size must be greater than or equal to 2 pixels on both "
"dimensions to render anything."
msgstr ""
+"Dapat mas malaki o magkatumbas ng 2 pixel ang Tinginan bago maka-render ng "
+"alinman."
#: scene/resources/occluder_shape.cpp
msgid "OccluderShapeSphere Set Spheres"
@@ -13847,10 +14042,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 71856baa70..221e209621 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -1,6 +1,6 @@
# Turkish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Aprın Çor Tigin <kabusturk38@gmail.com>, 2016-2017.
# Aykut YILDIRIM <aykutyildirim@windowslive.com>, 2018.
@@ -65,13 +65,14 @@
# Kadir Berk Yağar <ykadirberk2@gmail.com>, 2021.
# Aysu Toprak <moonwater99@hotmail.com>, 2021.
# Yusuf Yavuzyigit <yusufyavuzyigit25@gmail.com>, 2021.
+# seckiyn <kyofl6@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-18 13:37+0000\n"
-"Last-Translator: Yusuf Yavuzyigit <yusufyavuzyigit25@gmail.com>\n"
+"PO-Revision-Date: 2022-01-03 03:55+0000\n"
+"Last-Translator: seckiyn <kyofl6@gmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
"godot/tr/>\n"
"Language: tr\n"
@@ -79,7 +80,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 4.9.1-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -381,6 +382,11 @@ msgid "Duplicate Key(s)"
msgstr "Yinelenen Anahtar(lar)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "%d Çerçeve[ler]'i ekle"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Anahtar(lar)ı Sil"
@@ -549,6 +555,11 @@ msgstr ""
"Bu seçenek yalnızca tek izli olduğundan, Bezier düzenlemede işe yaramaz."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animasyon Anahtarı Ölçekle"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1531,6 +1542,10 @@ msgid "Invalid name."
msgstr "Geçersiz ad."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Geçerli karakterler:"
@@ -1635,7 +1650,9 @@ msgstr "Sahne güncelleniyor..."
msgid "[empty]"
msgstr "(boş)"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[kaydedilmemiş]"
@@ -1656,6 +1673,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "İsim:"
@@ -2154,7 +2172,8 @@ msgid "Properties"
msgstr "Özellikler"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "üzerine yaz:"
#: editor/editor_help.cpp
@@ -2295,6 +2314,20 @@ msgstr "Tema Özelliği"
msgid "Property:"
msgstr "Özellik:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(değer)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2304,6 +2337,29 @@ msgstr "Ayarla %s"
msgid "Set Multiple:"
msgstr "Çoklu Ayarla:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Özellikleri Kopyala"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Özellikleri Yapıştır"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Betik Yolunu Kopyala"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Çıktı:"
@@ -3118,6 +3174,20 @@ msgstr ""
"çalışan projede görünür olacaktır."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sahne Değişikliklerini Senkronize Et"
@@ -4241,6 +4311,10 @@ msgstr "Dosyalarda bul"
msgid "Find:"
msgstr "Bul:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Değiştir:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Dosya:"
@@ -4266,6 +4340,11 @@ msgstr "Bul..."
msgid "Replace..."
msgstr "Değiştir..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Tümünü Değiştir"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Bul: "
@@ -4275,8 +4354,9 @@ msgid "Replace: "
msgstr "Değiştir: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Tümünü Değiştir (geri alma yok)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Tümünü Değiştir"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4499,6 +4579,12 @@ msgstr ""
"UYARI: Bu kaynağı kullanan varlıklar mevcut, düzgün yüklenmeyi "
"durdurabilirler."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Kaynak yükleme başarısız oldu."
@@ -5958,6 +6044,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Sürükle: Seçili düğümü taşıyın."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Sürükle: Seçili düğümü taşıyın."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Seçili düğümün pivot konumunu ayarlayın."
@@ -5988,6 +6079,10 @@ msgid "Scale Mode"
msgstr "Esnetme Şekli"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6084,20 +6179,44 @@ msgstr "Seçilen nesneyi yerine kilitleyin (taşınamaz)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Seçimi Kilitle"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Seçilen nesnenin kilidini açın (taşınabilir)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Seçim Kilidini Aç"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Nesnenin çocuğunun seçilemez olduğundan kuşkusuz olur."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Seçilenleri Grupla"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Nesnenin çocuğunun seçilebilme yeteneğini geri kazandırır."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Seçilen Grubu Dağıt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "İskelet Ayarları"
@@ -7734,6 +7853,11 @@ msgid "Find in Files..."
msgstr "Dosyalarda Bul..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Değiştir..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Bağlamsal Yardım"
@@ -8257,6 +8381,19 @@ msgid "Toggle Freelook"
msgstr "Serbest Bakış Aç / Kapat"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Varsayılanlara dön"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Dönüşüm"
@@ -8979,6 +9116,29 @@ msgid "Another Theme"
msgstr "Başka Bir Tema"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Tür Ekle"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Kullanılabilir Profiller:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Dosya ismi boş."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Birden fazla proje açmakta kararlı mısınız?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Öğeyi Yeniden Adlandırmayı Onayla"
@@ -9003,18 +9163,6 @@ msgstr ""
"tipteki diğer tüm StyleBox'larda aynı özellikleri güncelleyecektir."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Tür Ekle"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Öğe Türü Ekle"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Düğüm Türleri:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Varsayılanı Göster"
@@ -9031,6 +9179,10 @@ msgid "Override all default type items."
msgstr "Tüm varsayılan tür öğelerini geçersiz kıl."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Öğe Türü Ekle"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11529,10 +11681,6 @@ msgid "Batch Rename"
msgstr "Tümden Yeniden Adlandır"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Değiştir:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Ön Ek:"
@@ -11826,6 +11974,20 @@ msgstr ""
"devralınan bir sahne oluşturabilirsiniz."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Yeni Sahneyi Farklı Kaydet ..."
@@ -12783,63 +12945,70 @@ msgstr "Solüsyonu İnşa Et"
msgid "End of inner exception stack trace"
msgstr "İç özel durum yığını izlemesinin sonu"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Bu düğümün çalışması için bir NavigationMesh kaynağı ayarlanmış veya "
+"oluşturulmuş olmalıdır."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "NavMesh'i Sabitle"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Yönlendirici örüntüsünü temizle."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Konfigürasyon Ayarlanıyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Izgara boyutu hesaplanıyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Yükseklik-alanı Oluşturuluyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Yürünebilir üçgenler işaretleniyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Aralıksız yükseklialanı inşa ediliyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Yürünebilir alan aşındırılıyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Bölümleniyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Konturlar oluşturuluyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Çoklu-örüntü oluşturuluyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Yerli yönlendirici örüntüsüne dönüştürülüyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigasyon Örüntüsü Üreteci Kurulumu:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Geometri Ayrıştırılıyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Oldu!"
@@ -13415,11 +13584,8 @@ msgstr ""
"olduğunda geçerlidir."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
-msgstr ""
-"\"El Takibi(Hand Tracking)\" sadece \"Xr Modu\" \"Oculus Mobile VR\" "
-"olduğunda geçerlidir."
+msgstr "\"İçinden Geçme\" sadece \"Xr Mod\" \"OpenXR\" ise geçerlidir."
#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
@@ -13428,25 +13594,24 @@ msgstr ""
"geçerlidir."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-"\"AAB Dışa Aktar\" yalnızca \"Özel Yapı Kullan\" etkinleştirildiğinde "
+"\"Min Sdk\" değiştirilmesi sadece \"Özel Yapı\" etkinleştirildiğinde "
"geçerlidir."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
"enabled."
msgstr ""
-"\"AAB Dışa Aktar\" yalnızca \"Özel Yapı Kullan\" etkinleştirildiğinde "
+"\"Target Sdk\" değiştirilmesi sadece \"Özel Yapı\" etkinleştirildiğinde "
"geçerlidir."
#: platform/android/export/export_plugin.cpp
msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
msgstr ""
+"\"Target Sdk\" sürümü \"Min Sdk\" sürümünden daha büyük veya eşit olmalıdır."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13864,6 +14029,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Bu engelleyici için engelleyici çokgeni boş. Lütfen bir çokgen çizin."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14125,13 +14300,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "90 dereceden geniş açılı SpotIşık gölge oluşturamaz."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Bu düğümün çalışması için bir NavigationMesh kaynağı ayarlanmış veya "
-"oluşturulmuş olmalıdır."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14139,6 +14312,12 @@ msgstr ""
"NavigationMeshInstance, bir Navigation düğümünün çocuğu ya da torunu "
"olmalıdır. O yalnızca yönlendirme verisi sağlar."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Hiçbir şekil ayarlanmadı."
@@ -14616,10 +14795,6 @@ msgstr ""
"'Parça' işlevinde atanan varyasyonlar, 'köşe' veya 'ışık'ta yeniden atanamaz."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "Özel işlevde parça aşaması değişikliğine erişilemedi!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "İşleve atama."
diff --git a/editor/translations/tt.po b/editor/translations/tt.po
index 22226ebf60..5032eb753a 100644
--- a/editor/translations/tt.po
+++ b/editor/translations/tt.po
@@ -1,6 +1,6 @@
# Tatar translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Bualma Show <appleaidar6@gmail.com>, 2021.
@@ -320,6 +320,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -482,6 +486,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1434,6 +1442,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1538,7 +1550,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1559,6 +1573,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2030,7 +2045,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2166,6 +2181,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2175,6 +2203,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2913,6 +2961,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3970,6 +4032,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3993,6 +4059,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4002,7 +4072,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4216,6 +4286,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5637,6 +5713,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5665,6 +5745,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5759,20 +5843,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7372,6 +7476,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7884,6 +7992,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8595,37 +8715,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8645,6 +8773,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10985,10 +11117,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11261,6 +11389,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12190,63 +12332,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13180,6 +13327,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13386,16 +13543,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13790,10 +13953,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po
index 30dd0ab7d0..77ca1dae62 100644
--- a/editor/translations/tzm.po
+++ b/editor/translations/tzm.po
@@ -1,6 +1,6 @@
# Central Atlas Tamazight translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Hakim Oubouali <hakim.oubouali.skr@gmail.com>, 2020.
@@ -318,6 +318,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -480,6 +484,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1432,6 +1440,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1536,7 +1548,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1557,6 +1571,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2028,7 +2043,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2164,6 +2179,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2173,6 +2201,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2911,6 +2959,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3968,6 +4030,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3991,6 +4057,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4000,7 +4070,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4214,6 +4284,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5635,6 +5711,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5663,6 +5743,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5757,20 +5841,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7370,6 +7474,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7882,6 +7990,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8593,37 +8713,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8643,6 +8771,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10983,10 +11115,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11259,6 +11387,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12188,63 +12330,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13178,6 +13325,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13384,16 +13541,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13788,10 +13951,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index fb2623f957..9ded993590 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -1,6 +1,6 @@
# Ukrainian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Aleksandr <XpycT.TOP@gmail.com>, 2017.
# Yuri Chornoivan <yurchor@ukr.net>, 2018, 2019, 2020, 2021.
@@ -338,6 +338,11 @@ msgid "Duplicate Key(s)"
msgstr "Дублювати ключі"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Додати %d кадри"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Вилучити ключі"
@@ -508,6 +513,11 @@ msgstr ""
"одинарна доріжка."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Масштабування ключів анімації"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1492,6 +1502,10 @@ msgid "Invalid name."
msgstr "Некоректна назва."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Припустимі символи:"
@@ -1596,7 +1610,9 @@ msgstr "Оновлення сцени..."
msgid "[empty]"
msgstr "[порожньо]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[не збережено]"
@@ -1617,6 +1633,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Ім'я:"
@@ -2120,7 +2137,8 @@ msgid "Properties"
msgstr "Властивості"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "перевизначення:"
#: editor/editor_help.cpp
@@ -2260,6 +2278,20 @@ msgstr "Властивість теми"
msgid "Property:"
msgstr "Властивість:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(значення)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2269,6 +2301,29 @@ msgstr "Встановити %s"
msgid "Set Multiple:"
msgstr "Встановити кратність:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Копіювати властивості"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Вставити властивості"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Копіювати шлях до скрипту"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Вивід:"
@@ -3086,6 +3141,20 @@ msgstr ""
"сітки та полігони."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Синхронізувати зміни сцени"
@@ -4210,6 +4279,10 @@ msgstr "Знайти у файлах"
msgid "Find:"
msgstr "Знайти:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Заміна:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Тека:"
@@ -4235,6 +4308,11 @@ msgstr "Знайти..."
msgid "Replace..."
msgstr "Замінити..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Замінити всі"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Знайти: "
@@ -4244,8 +4322,9 @@ msgid "Replace: "
msgstr "Замінити: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Замінити все (без скасовування)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Замінити всі"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4465,6 +4544,12 @@ msgstr ""
"УВАГА: існують об'єкти, що використовують цей ресурс та можуть припинити "
"завантажуватися належним чином."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Не вдалося завантажити ресурс."
@@ -5933,6 +6018,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Перетягнути: перемістити позначений вузол."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Перетягнути: перемістити позначений вузол."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: встановити позицію опорної точки позначеного вузла."
@@ -5963,6 +6053,10 @@ msgid "Scale Mode"
msgstr "Режим масштабування"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6059,20 +6153,44 @@ msgstr "Блокування обраного об'єкта на місці (н
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Розблокувати позначене"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Гарантує нащадки об'єкта не можуть бути обрані."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Згрупувати позначені"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Відновлює можливість вибору нащадків об'єкта."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Розгрупувати позначені"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Параметри каркаса"
@@ -7717,6 +7835,11 @@ msgid "Find in Files..."
msgstr "Знайти у файлах…"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Замінити..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Контекстна довідка"
@@ -8241,6 +8364,19 @@ msgid "Toggle Freelook"
msgstr "Перемикання огляду"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Повернутися до типового"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Перетворення"
@@ -8964,6 +9100,29 @@ msgid "Another Theme"
msgstr "Інша тема"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Додати тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Доступні профілі:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Порожня назва файла."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Ви справді хочете відкрити декілька проєктів одразу?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Підтвердити перейменування запису"
@@ -8989,18 +9148,6 @@ msgstr ""
"цього типу."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Додати тип"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Додати тип запису"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Типи вузлів:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показати типовий"
@@ -9018,6 +9165,10 @@ msgid "Override all default type items."
msgstr "Перевизначити усі записи стандартних типів."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Додати тип запису"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Тема:"
@@ -11528,10 +11679,6 @@ msgid "Batch Rename"
msgstr "Пакетне перейменування"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Заміна:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Префікс:"
@@ -11826,6 +11973,20 @@ msgstr ""
"сцену...»."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Зберегти нову сцену як..."
@@ -12789,63 +12950,70 @@ msgstr "Зібрати рішення"
msgid "End of inner exception stack trace"
msgstr "Кінець трасування стека для внутрішнього виключення"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Для роботи цього вузла слід встановити або створити ресурс «Навігаційна "
+"сітка»."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Запекти NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Очистити навігаційну сітку."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Налаштування конфігурації..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Розрахунок розміру сітки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Створення карти висот..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Позначення прохідних трикутників..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Створення компактної карти висот..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Розмиття прохідної ділянки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Розбиття..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Створення контурів..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Створення сітки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Перетворення на власну навігаційну сітку..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Налаштування генератора навігаційної сітки:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Аналіз геометрії..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Зроблено!"
@@ -13891,6 +14059,16 @@ msgstr ""
"Для цього затуляння багатокутник є порожнім. Будь ласка, намалюйте "
"багатокутник."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14152,13 +14330,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight з кутом, який є більшим за 90 градусів, не може давати тіні."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Для роботи цього вузла слід встановити або створити ресурс «Навігаційна "
-"сітка»."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14166,6 +14342,12 @@ msgstr ""
"NavigationMeshInstance має бути дочірнім елементом вузла Navigation або "
"елементом ще нижчої підпорядкованості. Він надає лише навігаційні дані."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Форму не встановлено."
@@ -14655,12 +14837,6 @@ msgstr ""
"надавати значення у «vertex» або «light»."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Доступ до змінного значення на кроці фрагментації у нетиповій функції "
-"неможливий!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Призначення функційного."
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 5154813e2c..c84931094f 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -1,6 +1,6 @@
# Urdu (Pakistan) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Muhammad Ali <ali@codeonion.com>, 2016.
@@ -325,6 +325,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو"
@@ -489,6 +493,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1459,6 +1467,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1563,7 +1575,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1584,6 +1598,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2073,7 +2088,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2214,6 +2229,19 @@ msgstr ".تمام کا انتخاب"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2223,6 +2251,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr ".تمام کا انتخاب"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr ".تمام کا انتخاب"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr ".تمام کا انتخاب"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2970,6 +3021,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4054,6 +4119,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4077,6 +4146,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "سب سکریپشن بنائیں"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4086,7 +4160,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4306,6 +4380,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5776,6 +5856,11 @@ msgstr ".تمام کا انتخاب"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr ".تمام کا انتخاب"
@@ -5806,6 +5891,10 @@ msgid "Scale Mode"
msgstr "ایکشن منتقل کریں"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5901,20 +5990,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr ".تمام کا انتخاب"
@@ -7557,6 +7670,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8081,6 +8198,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8833,37 +8962,46 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8883,6 +9021,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "سب سکریپشن بنائیں"
@@ -11303,10 +11445,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11581,6 +11719,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12547,63 +12699,68 @@ msgstr ".تمام کا انتخاب"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13567,6 +13724,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13773,16 +13940,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14177,10 +14350,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index 84c6ae0829..1a7c450e3d 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -1,6 +1,6 @@
# Vietnamese translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# 01lifeleft <01lifeleft@gmail.com>, 2018.
# Dlean Jeans <dleanjeans@gmail.com>, 2018.
@@ -337,6 +337,11 @@ msgid "Duplicate Key(s)"
msgstr "Nhân bản các khoá hoạt ảnh"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Thêm %d Khung hình"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Xoá khoá hoạt ảnh"
@@ -505,6 +510,11 @@ msgid ""
msgstr "Tùy chọn này không áp lên Bezier được, vì nó chỉ là một track."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Key để scale hoạt ảnh"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1489,6 +1499,10 @@ msgid "Invalid name."
msgstr "Tên không hợp lệ."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Ký tự hợp lệ:"
@@ -1594,7 +1608,9 @@ msgstr "Đang cập nhật cảnh ..."
msgid "[empty]"
msgstr "[rỗng]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[chưa lưu]"
@@ -1615,6 +1631,7 @@ msgstr "Tạo thư mục"
#: 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Tên:"
@@ -2104,7 +2121,8 @@ msgid "Properties"
msgstr "Thuộc tính"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "Ghi đè:"
#: editor/editor_help.cpp
@@ -2248,6 +2266,20 @@ msgstr "Cài đặt Tông màu"
msgid "Property:"
msgstr "Thuộc tính:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(giá trị)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2257,6 +2289,29 @@ msgstr "Gán %s"
msgid "Set Multiple:"
msgstr "Gán nhiều:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Thuộc tính"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Thuộc tính"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Sao chép đường dẫn tệp lệnh"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Đầu ra:"
@@ -3052,6 +3107,20 @@ msgstr ""
"đang chạy."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Đồng bộ hóa các thay đổi lên Cảnh"
@@ -4179,6 +4248,10 @@ msgstr "Tìm trong các Tệp tin"
msgid "Find:"
msgstr "Tìm:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Thay thế:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Thư mục:"
@@ -4204,6 +4277,11 @@ msgstr "Tìm..."
msgid "Replace..."
msgstr "Thay thế ..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Thay thế tất cả"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Tìm: "
@@ -4213,8 +4291,9 @@ msgid "Replace: "
msgstr "Thay thế: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Thay thế tất cả (không hoàn tác)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Thay thế tất cả"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4430,6 +4509,12 @@ msgstr ""
"CẢNH BÁO: Có tài nguyên khác sử dụng tài nguyên này, chúng có thể gặp trục "
"trặc khi nạp đấy."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nạp tài nguyên thất bại."
@@ -5881,6 +5966,11 @@ msgstr "Alt+Kéo: Di chuyển"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Kéo: Di chuyển"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Xoá nút và chuyển tiếp đã chọn."
@@ -5912,6 +6002,10 @@ msgid "Scale Mode"
msgstr "Chế độ căn Tỉ lệ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6008,20 +6102,44 @@ msgstr "Khóa vị trí vật (không cho dịch chuyển)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Khoá lựa chọn"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Thôi khóa vị trí vật (cho phép di chuyển)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Mở khoá Lựa chọn"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Hãy chắc rằng nút con của vật ở trạng thái Không thể chọn."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Nhóm Lựa chọn"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Khôi phục khả năng được chọn nút con của vật."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Bỏ nhóm đã chọn"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Cài đặt Khung xương"
@@ -7675,6 +7793,11 @@ msgid "Find in Files..."
msgstr "Tìm trong Tệp..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Thay thế ..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8220,6 +8343,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Đặt lại thành mặc định"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Biến đổi"
@@ -8992,6 +9128,30 @@ msgstr "Nhập Tông màu"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Kiểu"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Hồ sơ khả dụng:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Tên tệp trống."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Bạn chắc chắn mở nhiều hơn một dự án?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Đổi tên Anim Track"
@@ -9017,21 +9177,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Kiểu"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Thêm mục"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Loại nút"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Nạp mặc định"
@@ -9050,6 +9195,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Thêm mục"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Tông màu"
@@ -11516,10 +11666,6 @@ msgid "Batch Rename"
msgstr "Đổi tên"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Thay thế:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Tiền tố:"
@@ -11805,6 +11951,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Lưu Cảnh Mới Thành..."
@@ -12796,63 +12956,68 @@ msgstr "Chọn tất cả"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "Phải tạo hoặc đặt một NavigationMesh cho nút này thì nó mới hoạt động."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Xóa lưới điều hướng."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Thiết lập cấu hình ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Tính kích thước lưới ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Đánh dấu tam giác có thể đi được..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Làm xói mòn vùng đi được..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Phân vùng ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Tạo đường viền ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Thiết lập trình tạo lưới điều hướng:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Xong!"
@@ -13869,6 +14034,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14108,11 +14283,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "Phải tạo hoặc đặt một NavigationMesh cho nút này thì nó mới hoạt động."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14120,6 +14295,12 @@ msgstr ""
"NavigationMeshInstance phải là nút con hoặc cháu một nút Navigation. Nó chỉ "
"cung cấp dữ liệu điều hướng."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14528,10 +14709,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 30e61af318..06fe826028 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -1,6 +1,6 @@
# Chinese (Simplified) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# 360119124 <360119124@qq.com>, 2018.
# 柠檬杀手 <lemonkiller@gmail.com>, 2018, 2020.
@@ -88,8 +88,8 @@ msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2021-12-20 18:53+0000\n"
-"Last-Translator: jker <cxgmfy@163.com>\n"
+"PO-Revision-Date: 2021-12-31 08:52+0000\n"
+"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
"Language: zh_CN\n"
@@ -97,7 +97,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.10\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -399,6 +399,11 @@ msgid "Duplicate Key(s)"
msgstr "复制关键帧"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "添加 %d 帧"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "删除关键帧"
@@ -565,6 +570,11 @@ msgid ""
msgstr "由于只有单一轨道,因此该选项不适用于贝塞尔编辑。"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "缩放动画关键帧"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1534,6 +1544,10 @@ msgid "Invalid name."
msgstr "名称无效。"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "有效字符:"
@@ -1638,7 +1652,9 @@ msgstr "更新场景..."
msgid "[empty]"
msgstr "[空]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[未保存]"
@@ -1659,6 +1675,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "名称:"
@@ -2138,7 +2155,8 @@ msgid "Properties"
msgstr "属性"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "覆盖:"
#: editor/editor_help.cpp
@@ -2278,6 +2296,20 @@ msgstr "主题属性"
msgid "Property:"
msgstr "属性:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(值)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2287,6 +2319,29 @@ msgstr "设置 %s"
msgid "Set Multiple:"
msgstr "批量设置:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "复制属性"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "粘贴属性"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "复制脚本路径"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "输出:"
@@ -2402,7 +2457,7 @@ msgstr "请求文件的类型未知:"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr "保存出错。"
+msgstr "保存时出错。"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
@@ -2472,7 +2527,7 @@ msgstr "无法加载要合并的网格库!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr "保存网格库出错!"
+msgstr "保存网格库时出错!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
@@ -3064,6 +3119,20 @@ msgid ""
msgstr "启用该选项时,导航网格和多边形将在项目运行时可见。"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "同步场景修改"
@@ -4157,6 +4226,10 @@ msgstr "在文件中查找"
msgid "Find:"
msgstr "查找:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "替换:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "文件夹:"
@@ -4180,6 +4253,11 @@ msgstr "查找..."
msgid "Replace..."
msgstr "替换..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "全部替换"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "查找: "
@@ -4189,8 +4267,9 @@ msgid "Replace: "
msgstr "替换: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "全部替换(无法撤销)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "全部替换"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4406,6 +4485,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "警告:存在使用本资源的素材,将会停止加载。"
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "加载资源失败。"
@@ -5844,6 +5929,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+拖动:移动所选节点。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+拖动:移动所选节点。"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V:设置所选节点的中心点位置。"
@@ -5872,6 +5962,10 @@ msgid "Scale Mode"
msgstr "缩放模式"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5968,20 +6062,44 @@ msgstr "将所选对象锁定到该位置(无法移动)。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "解锁所选项"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "确保对象的子项不可选择。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "编组所选项"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "恢复选择对象的子级的功能。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "解组所选项"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "骨架选项"
@@ -6845,7 +6963,7 @@ msgstr "删除顶点"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Close Curve"
-msgstr "关闭曲线"
+msgstr "闭合曲线"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -7604,6 +7722,11 @@ msgid "Find in Files..."
msgstr "在文件中查找..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "替换..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "上下文帮助"
@@ -8125,6 +8248,19 @@ msgid "Toggle Freelook"
msgstr "切换自由观看"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "重置为默认值"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "变换"
@@ -8842,6 +8978,29 @@ msgid "Another Theme"
msgstr "其他主题"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "添加类型"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "可用配置文件:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "文件名为空。"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "您确定要打开多个项目吗?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "确认项目重命名"
@@ -8865,18 +9024,6 @@ msgstr ""
"将此样式盒置顶为主样式。编辑其属性会更新该类型下其他所有样式盒的相同属性。"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "添加类型"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "添加项目类型"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "节点类型:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "显示默认"
@@ -8893,6 +9040,10 @@ msgid "Override all default type items."
msgstr "覆盖所有默认类型项目。"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "添加项目类型"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "主题:"
@@ -10459,15 +10610,15 @@ 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
msgid ""
@@ -11328,10 +11479,6 @@ msgid "Batch Rename"
msgstr "批量重命名"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "替换:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "前缀:"
@@ -11614,6 +11761,20 @@ msgstr ""
"场景。"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "将新场景另存为..."
@@ -12561,63 +12722,68 @@ msgstr "构建解决方案"
msgid "End of inner exception stack trace"
msgstr "内部异常堆栈追朔结束"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "此节点需要设置 NavigationMesh 资源才能正常工作。"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "烘焙导航网格"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "清除导航网格。"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "正在设置配置..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "正在计算网格大小..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "正在创建高度图..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "标记可移动三角形..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "构建紧凑高度图..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "正在计算可行区域..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "分区中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "正在创建轮廓..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "创建多边形网格..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "转换为导航网格..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "导航网格生成器设置:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "解析多边形中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "完成!"
@@ -13588,6 +13754,16 @@ msgstr "此遮光体必须设置遮光形状才能起到遮光作用。"
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "此遮光体的遮光多边形为空。请绘制一个多边形。"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13821,11 +13997,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "角度宽于 90 度的 SpotLight 无法投射出阴影。"
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "此节点需要设置 NavigationMesh 资源才能正常工作。"
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -13833,6 +14009,12 @@ msgstr ""
"NavigationMeshInstance 类型节点必须作为 Navigation 节点的子节点或子孙节点才能"
"提供导航数据。"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "未设置形状。"
@@ -14281,10 +14463,6 @@ msgid ""
msgstr "已在“fragment”函数中赋值的 varying 不能在“vertex”或“light”中重新赋值。"
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "不能在自定义函数中访问片段 varying!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "对函数的赋值。"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 4d0e898171..e9cd6f0e5f 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -1,6 +1,6 @@
# Chinese (Hong Kong) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Wesley (zx-wt) <ZX_WT@ymail.com>, 2016-2017, 2020.
# cnieFIT <dtotncq@gmail.com>, 2019.
@@ -339,6 +339,10 @@ msgid "Duplicate Key(s)"
msgstr "複製動畫幀"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "移除動畫幀"
@@ -522,6 +526,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "移動動畫幀"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1532,6 +1541,10 @@ msgid "Invalid name."
msgstr "無效名稱。"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
#, fuzzy
msgid "Valid characters:"
msgstr "有效字符:"
@@ -1646,7 +1659,9 @@ msgstr "正在更新場景..."
msgid "[empty]"
msgstr "[空]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[未儲存]"
@@ -1667,6 +1682,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "名稱:"
@@ -2176,8 +2192,9 @@ msgid "Properties"
msgstr "內客"
#: editor/editor_help.cpp
-msgid "override:"
-msgstr ""
+#, fuzzy
+msgid "overrides %s:"
+msgstr "覆蓋"
#: editor/editor_help.cpp
#, fuzzy
@@ -2324,6 +2341,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2333,6 +2363,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "內客"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "內客"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "複製路徑"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -3123,6 +3176,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "同步場景的變動"
@@ -4282,6 +4349,11 @@ msgstr "在檔案中本尋找"
msgid "Find:"
msgstr "尋找:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "取代: "
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "資料夾:"
@@ -4308,6 +4380,11 @@ msgstr "尋找..."
msgid "Replace..."
msgstr "替換…"
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "全部取代"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "尋找: "
@@ -4317,8 +4394,9 @@ msgid "Replace: "
msgstr "取代: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "全部取代(不可還原)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "全部取代"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4548,6 +4626,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "資源加載失敗。"
@@ -6086,6 +6170,11 @@ msgstr "要刪除選中檔案?"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "要刪除選中檔案?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "移除被選取的軌迹。"
@@ -6115,6 +6204,10 @@ msgid "Scale Mode"
msgstr "選擇模式"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -6214,20 +6307,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "刪除選中檔案"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "移除選項"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "移除選項"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "只限選中"
@@ -7925,6 +8042,11 @@ msgid "Find in Files..."
msgstr "篩選檔案..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "替換…"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8470,6 +8592,19 @@ msgid "Toggle Freelook"
msgstr "全螢幕"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "預設"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9251,6 +9386,29 @@ msgstr "檔案"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "新增節點"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "篩選:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "路徑為空"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "動畫軌跡重新命名"
@@ -9276,20 +9434,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "新增節點"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Node名稱"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "預設"
@@ -9307,6 +9451,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "檔案"
@@ -11808,11 +11956,6 @@ msgid "Batch Rename"
msgstr "重新命名..."
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "取代: "
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12102,6 +12245,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -13107,64 +13264,69 @@ msgstr "所有選項"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Marking walkable triangles..."
msgstr "儲存本地更改..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -14166,6 +14328,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14374,16 +14546,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14784,10 +14962,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 1163c3d559..c75612316a 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -1,6 +1,6 @@
# Chinese (Taiwan) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Allen H <w84miracle@gmail.com>, 2017.
# Billy SU <g4691821@gmail.com>, 2018.
@@ -344,6 +344,11 @@ msgid "Duplicate Key(s)"
msgstr "重複關鍵畫格"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "新增 %d 個影格"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "刪除關鍵畫格"
@@ -510,6 +515,11 @@ msgid ""
msgstr "該選項不適用貝茲曲線編輯,因曲線僅有單一軌道。"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "動畫縮放關鍵影格"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1479,6 +1489,10 @@ msgid "Invalid name."
msgstr "無效的名稱。"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "可使用的字元:"
@@ -1583,7 +1597,9 @@ msgstr "正在更新場景…"
msgid "[empty]"
msgstr "[空]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[未保存]"
@@ -1604,6 +1620,7 @@ 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
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "名稱:"
@@ -2087,7 +2104,8 @@ msgid "Properties"
msgstr "屬性"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "複寫:"
#: editor/editor_help.cpp
@@ -2225,6 +2243,20 @@ msgstr "主題屬性"
msgid "Property:"
msgstr "屬性:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(數值)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2234,6 +2266,29 @@ msgstr "設定 %s"
msgid "Set Multiple:"
msgstr "設定多個:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "複製屬性"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "貼上屬性"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "複製腳本路徑"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "輸出:"
@@ -3011,6 +3066,20 @@ msgid ""
msgstr "開啟該選項後,導航網格與多邊形將在專案執行時可見。"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "同步常見更改"
@@ -4104,6 +4173,10 @@ msgstr "在檔案中搜尋"
msgid "Find:"
msgstr "搜尋:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "取代:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "資料夾:"
@@ -4127,6 +4200,11 @@ msgstr "搜尋..."
msgid "Replace..."
msgstr "取代..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "取代全部"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "搜尋: "
@@ -4136,8 +4214,9 @@ msgid "Replace: "
msgstr "取代: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "全部取代(無法復原)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "取代全部"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4353,6 +4432,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "警告:有素材使用該資源,將無法正確加載。"
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "加載資源失敗。"
@@ -5790,6 +5875,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+拖移:移動所選的節點。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+拖移:移動所選的節點。"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V:設定所選節點之支點位置。"
@@ -5818,6 +5908,10 @@ msgid "Scale Mode"
msgstr "縮放模式"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+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"
@@ -5914,20 +6008,44 @@ msgstr "在其位置上鎖定所選物件(無法移動)。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+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
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "取消鎖定所選"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "確保物件的子級項目無法被選擇。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "為所選的項目建立群組"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "恢復讓物件的子級項目可選擇。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "移除所選項目的群組"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "骨架選項"
@@ -7550,6 +7668,11 @@ msgid "Find in Files..."
msgstr "在檔案中搜尋..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "取代..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "上下文說明"
@@ -8071,6 +8194,19 @@ msgid "Toggle Freelook"
msgstr "開啟/關閉自由視圖"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "重設為預設值"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "變換"
@@ -8788,6 +8924,29 @@ msgid "Another Theme"
msgstr "其他主題"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "新增類別"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "可用設定檔:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "檔案名稱為空。"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "確定要打開多個專案嗎?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "確認項目重新命名"
@@ -8811,18 +8970,6 @@ msgstr ""
"釘選該樣式盒為主要樣式。編輯其屬性將更新所有其他同類別的樣式盒之相同屬性。"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "新增類別"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "新增項目類型"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "節點類別:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "顯示預設"
@@ -8839,6 +8986,10 @@ msgid "Override all default type items."
msgstr "複寫所有預設類別項目。"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "新增項目類型"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "主題:"
@@ -11275,10 +11426,6 @@ msgid "Batch Rename"
msgstr "批次重新命名"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "取代:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "前置:"
@@ -11561,6 +11708,20 @@ msgstr ""
"場景。"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "另存新場景為..."
@@ -12508,63 +12669,68 @@ msgstr "建構解決方案"
msgid "End of inner exception stack trace"
msgstr "內部異常堆疊回溯結束"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "必須先為該節點建立 NavigationMesh 資源才可運作。"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "製作 NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "清除導航網格。"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "正在設定組態..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "正在計算網格大小..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "正在建立 Heightfield..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "正在標記可移動的三角形..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "正在建置緊湊 Heightfield..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "正在建立可移動區域..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "正在分割..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "正在建立輪廓..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "正在建立多邊形網格..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "正在轉換為原生導航網格..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "導航網格產生器設定:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "正在解析多邊形..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "完成!"
@@ -13536,6 +13702,16 @@ msgstr "該遮光體必須要有設定(或繪製)遮光體形狀才會有作
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "遮光體無遮光體多邊形。請先繪製一個多邊形。"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13767,11 +13943,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "角度大於 90 度的 SpotLight 無法投射出陰影。"
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "必須先為該節點建立 NavigationMesh 資源才可運作。"
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -13779,6 +13955,12 @@ msgstr ""
"NavigationMeshInstance 必須為 Navigation 節點的子節點或次級子節點。其僅提供導"
"航資料。"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "未設定任何的形狀。"
@@ -14233,10 +14415,6 @@ msgstr ""
"指派。"
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "無法在自定義函式中存取片段階段(Fragment-stage)中的Varying變數!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "指派至函式。"