summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/SCsub2
-rw-r--r--editor/action_map_editor.cpp2
-rw-r--r--editor/action_map_editor.h2
-rw-r--r--editor/animation_bezier_editor.cpp2
-rw-r--r--editor/animation_track_editor.cpp124
-rw-r--r--editor/animation_track_editor.h30
-rw-r--r--editor/animation_track_editor_plugins.cpp18
-rw-r--r--editor/animation_track_editor_plugins.h9
-rw-r--r--editor/code_editor.cpp6
-rw-r--r--editor/code_editor.h8
-rw-r--r--editor/connections_dialog.cpp3
-rw-r--r--editor/create_dialog.cpp4
-rw-r--r--editor/debugger/editor_debugger_node.cpp4
-rw-r--r--editor/debugger/editor_debugger_node.h2
-rw-r--r--editor/debugger/editor_profiler.cpp2
-rw-r--r--editor/debugger/editor_visual_profiler.cpp4
-rw-r--r--editor/debugger/script_editor_debugger.cpp16
-rw-r--r--editor/debugger/script_editor_debugger.h2
-rw-r--r--editor/dependency_editor.cpp3
-rw-r--r--editor/doc_tools.cpp5
-rw-r--r--editor/editor_asset_installer.cpp6
-rw-r--r--editor/editor_asset_installer.h2
-rw-r--r--editor/editor_audio_buses.cpp7
-rw-r--r--editor/editor_audio_buses.h6
-rw-r--r--editor/editor_autoload_settings.cpp113
-rw-r--r--editor/editor_autoload_settings.h28
-rw-r--r--editor/editor_data.cpp3
-rw-r--r--editor/editor_data.h6
-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.h4
-rw-r--r--editor/editor_feature_profile.cpp6
-rw-r--r--editor/editor_feature_profile.h2
-rw-r--r--editor/editor_file_dialog.cpp36
-rw-r--r--editor/editor_file_dialog.h8
-rw-r--r--editor/editor_file_system.cpp14
-rw-r--r--editor/editor_file_system.h20
-rw-r--r--editor/editor_fonts.cpp21
-rw-r--r--editor/editor_help.cpp2
-rw-r--r--editor/editor_help.h4
-rw-r--r--editor/editor_help_search.cpp4
-rw-r--r--editor/editor_help_search.h2
-rw-r--r--editor/editor_inspector.cpp59
-rw-r--r--editor/editor_inspector.h57
-rw-r--r--editor/editor_node.cpp77
-rw-r--r--editor/editor_node.h33
-rw-r--r--editor/editor_plugin_settings.cpp2
-rw-r--r--editor/editor_plugin_settings.h2
-rw-r--r--editor/editor_properties.cpp36
-rw-r--r--editor/editor_properties.h44
-rw-r--r--editor/editor_properties_array_dict.cpp244
-rw-r--r--editor/editor_properties_array_dict.h42
-rw-r--r--editor/editor_property_name_processor.cpp136
-rw-r--r--editor/editor_property_name_processor.h58
-rw-r--r--editor/editor_resource_picker.cpp11
-rw-r--r--editor/editor_run_native.cpp3
-rw-r--r--editor/editor_run_native.h2
-rw-r--r--editor/editor_sectioned_inspector.cpp4
-rw-r--r--editor/editor_settings.cpp22
-rw-r--r--editor/editor_settings.h4
-rw-r--r--editor/editor_settings_dialog.cpp22
-rw-r--r--editor/editor_settings_dialog.h2
-rw-r--r--editor/editor_spin_slider.cpp11
-rw-r--r--editor/editor_spin_slider.h22
-rw-r--r--editor/editor_themes.cpp9
-rw-r--r--editor/editor_toaster.cpp8
-rw-r--r--editor/editor_toaster.h2
-rw-r--r--editor/editor_vcs_interface.cpp1
-rw-r--r--editor/editor_vcs_interface.h2
-rw-r--r--editor/export_template_manager.cpp5
-rw-r--r--editor/fileserver/editor_file_server.cpp4
-rw-r--r--editor/filesystem_dock.cpp176
-rw-r--r--editor/filesystem_dock.h17
-rw-r--r--editor/find_in_files.cpp2
-rw-r--r--editor/find_in_files.h2
-rw-r--r--editor/icons/CompressedTexture2D.svg (renamed from editor/icons/StreamTexture.svg)0
-rw-r--r--editor/icons/ViewportSpeed.svg2
-rw-r--r--editor/import/dynamic_font_import_settings.cpp14
-rw-r--r--editor/import/resource_importer_dynamic_font.cpp6
-rw-r--r--editor/import/resource_importer_layered_texture.cpp18
-rw-r--r--editor/import/resource_importer_layered_texture.h2
-rw-r--r--editor/import/resource_importer_texture.cpp16
-rw-r--r--editor/import/resource_importer_texture.h4
-rw-r--r--editor/import_dock.cpp6
-rw-r--r--editor/localization_editor.cpp1
-rw-r--r--editor/localization_editor.h2
-rw-r--r--editor/plugin_config_dialog.cpp2
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.cpp7
-rw-r--r--editor/plugins/animation_blend_space_1d_editor.cpp2
-rw-r--r--editor/plugins/animation_blend_space_2d_editor.cpp2
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp38
-rw-r--r--editor/plugins/animation_player_editor_plugin.h1
-rw-r--r--editor/plugins/animation_state_machine_editor.cpp47
-rw-r--r--editor/plugins/animation_state_machine_editor.h2
-rw-r--r--editor/plugins/asset_library_editor_plugin.cpp6
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp96
-rw-r--r--editor/plugins/canvas_item_editor_plugin.h13
-rw-r--r--editor/plugins/debugger_editor_plugin.cpp18
-rw-r--r--editor/plugins/gpu_particles_3d_editor_plugin.cpp8
-rw-r--r--editor/plugins/mesh_instance_3d_editor_plugin.cpp10
-rw-r--r--editor/plugins/mesh_library_editor_plugin.cpp5
-rw-r--r--editor/plugins/multimesh_editor_plugin.cpp6
-rw-r--r--editor/plugins/node_3d_editor_gizmos.cpp27
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp44
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp2
-rw-r--r--editor/plugins/script_editor_plugin.cpp16
-rw-r--r--editor/plugins/script_text_editor.cpp9
-rw-r--r--editor/plugins/shader_editor_plugin.cpp4
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.cpp17
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.cpp49
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.h1
-rw-r--r--editor/plugins/text_editor.cpp2
-rw-r--r--editor/plugins/texture_region_editor_plugin.cpp5
-rw-r--r--editor/plugins/tiles/atlas_merging_dialog.cpp2
-rw-r--r--editor/plugins/tiles/tile_map_editor.cpp2
-rw-r--r--editor/plugins/tiles/tile_set_editor.cpp2
-rw-r--r--editor/plugins/visual_shader_editor_plugin.cpp622
-rw-r--r--editor/plugins/visual_shader_editor_plugin.h36
-rw-r--r--editor/project_export.cpp7
-rw-r--r--editor/project_export.h6
-rw-r--r--editor/project_manager.cpp41
-rw-r--r--editor/project_settings_editor.cpp2
-rw-r--r--editor/property_editor.cpp5
-rw-r--r--editor/property_editor.h4
-rw-r--r--editor/property_selector.cpp1
-rw-r--r--editor/property_selector.h2
-rw-r--r--editor/quick_open.cpp2
-rw-r--r--editor/quick_open.h2
-rw-r--r--editor/scene_tree_dock.cpp9
-rw-r--r--editor/scene_tree_dock.h8
-rw-r--r--editor/scene_tree_editor.cpp10
-rw-r--r--editor/scene_tree_editor.h18
-rw-r--r--editor/script_create_dialog.cpp54
-rw-r--r--editor/script_create_dialog.h28
-rw-r--r--editor/translations/af.po70
-rw-r--r--editor/translations/ar.po679
-rw-r--r--editor/translations/az.po67
-rw-r--r--editor/translations/bg.po71
-rw-r--r--editor/translations/bn.po72
-rw-r--r--editor/translations/br.po64
-rw-r--r--editor/translations/ca.po73
-rw-r--r--editor/translations/cs.po83
-rw-r--r--editor/translations/da.po70
-rw-r--r--editor/translations/de.po238
-rw-r--r--editor/translations/editor.pot64
-rw-r--r--editor/translations/el.po75
-rw-r--r--editor/translations/en_Shaw.po14652
-rw-r--r--editor/translations/eo.po70
-rw-r--r--editor/translations/es.po244
-rw-r--r--editor/translations/es_AR.po585
-rw-r--r--editor/translations/et.po68
-rw-r--r--editor/translations/eu.po66
-rwxr-xr-xeditor/translations/extract.py172
-rw-r--r--editor/translations/fa.po72
-rw-r--r--editor/translations/fi.po226
-rw-r--r--editor/translations/fil.po64
-rw-r--r--editor/translations/fr.po160
-rw-r--r--editor/translations/ga.po66
-rw-r--r--editor/translations/gl.po73
-rw-r--r--editor/translations/he.po72
-rw-r--r--editor/translations/hi.po68
-rw-r--r--editor/translations/hr.po70
-rw-r--r--editor/translations/hu.po72
-rw-r--r--editor/translations/id.po86
-rw-r--r--editor/translations/is.po64
-rw-r--r--editor/translations/it.po139
-rw-r--r--editor/translations/ja.po124
-rw-r--r--editor/translations/ka.po70
-rw-r--r--editor/translations/km.po64
-rw-r--r--editor/translations/ko.po103
-rw-r--r--editor/translations/lt.po66
-rw-r--r--editor/translations/lv.po70
-rw-r--r--editor/translations/mi.po64
-rw-r--r--editor/translations/mk.po64
-rw-r--r--editor/translations/ml.po64
-rw-r--r--editor/translations/mr.po76
-rw-r--r--editor/translations/ms.po76
-rw-r--r--editor/translations/nb.po73
-rw-r--r--editor/translations/nl.po82
-rw-r--r--editor/translations/or.po64
-rw-r--r--editor/translations/pl.po564
-rw-r--r--editor/translations/pr.po70
-rw-r--r--editor/translations/pt.po75
-rw-r--r--editor/translations/pt_BR.po86
-rw-r--r--editor/translations/ro.po72
-rw-r--r--editor/translations/ru.po230
-rw-r--r--editor/translations/si.po64
-rw-r--r--editor/translations/sk.po70
-rw-r--r--editor/translations/sl.po70
-rw-r--r--editor/translations/sq.po70
-rw-r--r--editor/translations/sr_Cyrl.po72
-rw-r--r--editor/translations/sr_Latn.po974
-rw-r--r--editor/translations/sv.po70
-rw-r--r--editor/translations/ta.po64
-rw-r--r--editor/translations/te.po64
-rw-r--r--editor/translations/th.po75
-rw-r--r--editor/translations/tl.po580
-rw-r--r--editor/translations/tr.po75
-rw-r--r--editor/translations/tt.po64
-rw-r--r--editor/translations/tzm.po64
-rw-r--r--editor/translations/uk.po234
-rw-r--r--editor/translations/ur_PK.po70
-rw-r--r--editor/translations/vi.po145
-rw-r--r--editor/translations/zh_CN.po237
-rw-r--r--editor/translations/zh_HK.po70
-rw-r--r--editor/translations/zh_TW.po75
207 files changed, 22747 insertions, 4389 deletions
diff --git a/editor/SCsub b/editor/SCsub
index 87153f3b2b..35c215b663 100644
--- a/editor/SCsub
+++ b/editor/SCsub
@@ -76,7 +76,7 @@ if env["tools"]:
# Editor translations
to_include = (
- "ar,bg,bn,ca,cs,de,el,eo,es_AR,es,fi,fr,gl,he,hu,id,it,ja,ko,lv,ms,nb,nl,pl,pt_BR,pt,ro,ru,sk,sv,th,tr,uk,vi,zh_CN,zh_TW"
+ "ar,bg,bn,ca,cs,de,el,eo,es_AR,es,fi,fr,gl,he,hu,id,it,ja,ko,lv,ms,nb,nl,pl,pt_BR,pt,ro,ru,sk,sv,th,tl,tr,uk,vi,zh_CN,zh_TW"
).split(",")
tlist = [env.Dir("#editor/translations").abspath + "/" + f + ".po" for f in to_include]
env.Depends("#editor/editor_translations.gen.h", tlist)
diff --git a/editor/action_map_editor.cpp b/editor/action_map_editor.cpp
index 92d53cc005..aab9743c43 100644
--- a/editor/action_map_editor.cpp
+++ b/editor/action_map_editor.cpp
@@ -1122,8 +1122,6 @@ void ActionMapEditor::use_external_search_box(LineEdit *p_searchbox) {
}
ActionMapEditor::ActionMapEditor() {
- show_builtin_actions = false;
-
// Main Vbox Container
VBoxContainer *main_vbox = memnew(VBoxContainer);
main_vbox->set_anchors_and_offsets_preset(PRESET_WIDE);
diff --git a/editor/action_map_editor.h b/editor/action_map_editor.h
index de24d3ee1f..34c70c942e 100644
--- a/editor/action_map_editor.h
+++ b/editor/action_map_editor.h
@@ -164,7 +164,7 @@ private:
// Filtering and Adding actions
- bool show_builtin_actions;
+ bool show_builtin_actions = false;
CheckButton *show_builtin_actions_checkbutton;
LineEdit *action_list_search;
diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp
index c8c8c7d891..0dbe230699 100644
--- a/editor/animation_bezier_editor.cpp
+++ b/editor/animation_bezier_editor.cpp
@@ -946,7 +946,7 @@ void AnimationBezierTrackEdit::gui_input(const Ref<InputEvent> &p_event) {
}
if (menu->get_item_count()) {
- menu->set_as_minsize();
+ menu->reset_size();
menu->set_position(popup_pos);
menu->popup();
}
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp
index 53f585d06b..e61a1aae9c 100644
--- a/editor/animation_track_editor.cpp
+++ b/editor/animation_track_editor.cpp
@@ -606,8 +606,7 @@ public:
} break;
case Animation::TYPE_METHOD: {
p_list->push_back(PropertyInfo(Variant::STRING_NAME, "name"));
- static_assert(VARIANT_ARG_MAX == 8, "PROPERTY_HINT_RANGE needs to be updated if VARIANT_ARG_MAX != 8");
- p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,8,1"));
+ p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,32,1,or_greater"));
Dictionary d = animation->track_get_key_value(track, key);
ERR_FAIL_COND(!d.has("args"));
@@ -1287,8 +1286,8 @@ public:
} break;
case Animation::TYPE_METHOD: {
p_list->push_back(PropertyInfo(Variant::STRING_NAME, "name"));
- static_assert(VARIANT_ARG_MAX == 8, "PROPERTY_HINT_RANGE needs to be updated if VARIANT_ARG_MAX != 8");
- p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,8,1"));
+
+ p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,32,1,or_greater"));
Dictionary d = animation->track_get_key_value(first_track, first_key);
ERR_FAIL_COND(!d.has("args"));
@@ -1459,7 +1458,8 @@ int AnimationTimelineEdit::get_name_limit() const {
void AnimationTimelineEdit::_notification(int p_what) {
switch (p_what) {
- case NOTIFICATION_ENTER_TREE: {
+ case NOTIFICATION_ENTER_TREE:
+ case NOTIFICATION_THEME_CHANGED: {
panner->setup((ViewPanner::ControlScheme)EDITOR_GET("editors/panning/animation_editors_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), bool(EditorSettings::get_singleton()->get("editors/panning/simple_panning")));
add_track->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons")));
loop->set_icon(get_theme_icon(SNAME("Loop"), SNAME("EditorIcons")));
@@ -1814,13 +1814,6 @@ void AnimationTimelineEdit::gui_input(const Ref<InputEvent> &p_event) {
Ref<InputEventMouseMotion> mm = p_event;
if (mm.is_valid()) {
- if (hsize_rect.has_point(mm->get_position())) {
- // Change the cursor to indicate that the track name column's width can be adjusted
- set_default_cursor_shape(Control::CURSOR_HSIZE);
- } else {
- set_default_cursor_shape(Control::CURSOR_ARROW);
- }
-
if (dragging_hsize) {
int ofs = mm->get_position().x - dragging_hsize_from;
name_limit = dragging_hsize_at + ofs;
@@ -1836,6 +1829,15 @@ void AnimationTimelineEdit::gui_input(const Ref<InputEvent> &p_event) {
}
}
+Control::CursorShape AnimationTimelineEdit::get_cursor_shape(const Point2 &p_pos) const {
+ if (dragging_hsize || hsize_rect.has_point(p_pos)) {
+ // Indicate that the track name column's width can be adjusted
+ return Control::CURSOR_HSIZE;
+ } else {
+ return get_default_cursor_shape();
+ }
+}
+
void AnimationTimelineEdit::_scroll_callback(Vector2 p_scroll_vec, bool p_alt) {
// Timeline has no vertical scroll, so we change it to horizontal.
p_scroll_vec.x += p_scroll_vec.y;
@@ -1884,8 +1886,6 @@ void AnimationTimelineEdit::_bind_methods() {
}
AnimationTimelineEdit::AnimationTimelineEdit() {
- use_fps = false;
- editing = false;
name_limit = 150 * EDSCALE;
zoom = nullptr;
track_edit = nullptr;
@@ -1933,9 +1933,6 @@ AnimationTimelineEdit::AnimationTimelineEdit() {
add_track->get_popup()->connect("index_pressed", callable_mp(this, &AnimationTimelineEdit::_track_added));
len_hb->hide();
- dragging_timeline = false;
- dragging_hsize = false;
-
panner.instantiate();
panner->set_callbacks(callable_mp(this, &AnimationTimelineEdit::_scroll_callback), callable_mp(this, &AnimationTimelineEdit::_pan_callback), callable_mp(this, &AnimationTimelineEdit::_zoom_callback));
@@ -1946,6 +1943,16 @@ AnimationTimelineEdit::AnimationTimelineEdit() {
void AnimationTrackEdit::_notification(int p_what) {
switch (p_what) {
+ case NOTIFICATION_THEME_CHANGED: {
+ if (animation.is_null()) {
+ return;
+ }
+ ERR_FAIL_INDEX(track, animation->get_track_count());
+
+ type_icon = _get_key_type_icon();
+ selected_icon = get_theme_icon(SNAME("KeySelected"), SNAME("EditorIcons"));
+ } break;
+
case NOTIFICATION_DRAW: {
if (animation.is_null()) {
return;
@@ -1964,17 +1971,6 @@ void AnimationTrackEdit::_notification(int p_what) {
Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label"));
int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label"));
Color color = get_theme_color(SNAME("font_color"), SNAME("Label"));
- Ref<Texture2D> type_icons[9] = {
- get_theme_icon(SNAME("KeyValue"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyTrackPosition"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyTrackRotation"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyTrackScale"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyTrackBlendShape"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyCall"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyBezier"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyAudio"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyAnimation"), SNAME("EditorIcons"))
- };
int hsep = get_theme_constant(SNAME("hseparation"), SNAME("ItemList"));
Color linecolor = color;
linecolor.a = 0.2;
@@ -1990,7 +1986,7 @@ void AnimationTrackEdit::_notification(int p_what) {
draw_texture(check, check_rect.position);
ofs += check->get_width() + hsep;
- Ref<Texture2D> type_icon = type_icons[animation->track_get_type(track)];
+ Ref<Texture2D> type_icon = _get_key_type_icon();
draw_texture(type_icon, Point2(ofs, int(get_size().height - type_icon->get_height()) / 2));
ofs += type_icon->get_width() + hsep;
@@ -2426,22 +2422,10 @@ void AnimationTrackEdit::set_animation_and_track(const Ref<Animation> &p_animati
track = p_track;
update();
- Ref<Texture2D> type_icons[9] = {
- get_theme_icon(SNAME("KeyValue"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyXPosition"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyXRotation"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyXScale"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyBlendShape"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyCall"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyBezier"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyAudio"), SNAME("EditorIcons")),
- get_theme_icon(SNAME("KeyAnimation"), SNAME("EditorIcons"))
- };
-
ERR_FAIL_INDEX(track, animation->get_track_count());
node_path = animation->track_get_path(p_track);
- type_icon = type_icons[animation->track_get_type(track)];
+ type_icon = _get_key_type_icon();
selected_icon = get_theme_icon(SNAME("KeySelected"), SNAME("EditorIcons"));
}
@@ -2542,6 +2526,21 @@ bool AnimationTrackEdit::_is_value_key_valid(const Variant &p_key_value, Variant
return (!prop_exists || Variant::can_convert(p_key_value.get_type(), r_valid_type));
}
+Ref<Texture2D> AnimationTrackEdit::_get_key_type_icon() const {
+ Ref<Texture2D> type_icons[9] = {
+ get_theme_icon(SNAME("KeyValue"), SNAME("EditorIcons")),
+ get_theme_icon(SNAME("KeyTrackPosition"), SNAME("EditorIcons")),
+ get_theme_icon(SNAME("KeyTrackRotation"), SNAME("EditorIcons")),
+ get_theme_icon(SNAME("KeyTrackScale"), SNAME("EditorIcons")),
+ get_theme_icon(SNAME("KeyTrackBlendShape"), SNAME("EditorIcons")),
+ get_theme_icon(SNAME("KeyCall"), SNAME("EditorIcons")),
+ get_theme_icon(SNAME("KeyBezier"), SNAME("EditorIcons")),
+ get_theme_icon(SNAME("KeyAudio"), SNAME("EditorIcons")),
+ get_theme_icon(SNAME("KeyAnimation"), SNAME("EditorIcons"))
+ };
+ return type_icons[animation->track_get_type(track)];
+}
+
String AnimationTrackEdit::get_tooltip(const Point2 &p_pos) const {
if (check_rect.has_point(p_pos)) {
return TTR("Toggle this track on/off.");
@@ -2748,7 +2747,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) {
menu->add_icon_item(get_theme_icon(SNAME("TrackDiscrete"), SNAME("EditorIcons")), TTR("Discrete"), MENU_CALL_MODE_DISCRETE);
menu->add_icon_item(get_theme_icon(SNAME("TrackTrigger"), SNAME("EditorIcons")), TTR("Trigger"), MENU_CALL_MODE_TRIGGER);
menu->add_icon_item(get_theme_icon(SNAME("TrackCapture"), SNAME("EditorIcons")), TTR("Capture"), MENU_CALL_MODE_CAPTURE);
- menu->set_as_minsize();
+ menu->reset_size();
Vector2 popup_pos = get_screen_position() + update_mode_rect.position + Vector2(0, update_mode_rect.size.height);
menu->set_position(popup_pos);
@@ -2766,7 +2765,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) {
menu->add_icon_item(get_theme_icon(SNAME("InterpRaw"), SNAME("EditorIcons")), TTR("Nearest"), MENU_INTERPOLATION_NEAREST);
menu->add_icon_item(get_theme_icon(SNAME("InterpLinear"), SNAME("EditorIcons")), TTR("Linear"), MENU_INTERPOLATION_LINEAR);
menu->add_icon_item(get_theme_icon(SNAME("InterpCubic"), SNAME("EditorIcons")), TTR("Cubic"), MENU_INTERPOLATION_CUBIC);
- menu->set_as_minsize();
+ menu->reset_size();
Vector2 popup_pos = get_screen_position() + interp_mode_rect.position + Vector2(0, interp_mode_rect.size.height);
menu->set_position(popup_pos);
@@ -2783,7 +2782,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) {
menu->clear();
menu->add_icon_item(get_theme_icon(SNAME("InterpWrapClamp"), SNAME("EditorIcons")), TTR("Clamp Loop Interp"), MENU_LOOP_CLAMP);
menu->add_icon_item(get_theme_icon(SNAME("InterpWrapLoop"), SNAME("EditorIcons")), TTR("Wrap Loop Interp"), MENU_LOOP_WRAP);
- menu->set_as_minsize();
+ menu->reset_size();
Vector2 popup_pos = get_screen_position() + loop_wrap_rect.position + Vector2(0, loop_wrap_rect.size.height);
menu->set_position(popup_pos);
@@ -2885,7 +2884,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) {
menu->add_separator();
menu->add_icon_item(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), TTR("Delete Key(s)"), MENU_KEY_DELETE);
}
- menu->set_as_minsize();
+ menu->reset_size();
menu->set_position(get_screen_position() + get_local_mouse_position());
menu->popup();
@@ -3147,13 +3146,8 @@ AnimationTrackEdit::AnimationTrackEdit() {
path = nullptr;
path_popup = nullptr;
menu = nullptr;
- clicking_on_name = false;
dropping_at = 0;
- in_group = false;
-
- moving_selection_attempt = false;
- moving_selection = false;
select_single_attempt = -1;
play_position_pos = 0;
@@ -3189,7 +3183,7 @@ AnimationTrackEdit *AnimationTrackEditPlugin::create_value_track_edit(Object *p_
};
Callable::CallError ce;
- return Object::cast_to<AnimationTrackEdit>(get_script_instance()->call("create_value_track_edit", (const Variant **)&argptrs, 6, ce).operator Object *());
+ return Object::cast_to<AnimationTrackEdit>(get_script_instance()->callp("create_value_track_edit", (const Variant **)&argptrs, 6, ce).operator Object *());
}
return nullptr;
}
@@ -3588,7 +3582,7 @@ void AnimationTrackEditor::commit_insert_queue() {
}
}
- if (bool(EDITOR_DEF("editors/animation/confirm_insert_track", true)) && num_tracks > 0) {
+ if (bool(EDITOR_GET("editors/animation/confirm_insert_track")) && num_tracks > 0) {
// Potentially a new key, does not exist.
if (num_tracks == 1) {
// TRANSLATORS: %s will be replaced by a phrase describing the target of track.
@@ -5554,31 +5548,35 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
}
}
+ String track_type;
switch (animation->track_get_type(i)) {
case Animation::TYPE_POSITION_3D:
- text += " (Position)";
+ track_type = TTR("Position");
break;
case Animation::TYPE_ROTATION_3D:
- text += " (Rotation)";
+ track_type = TTR("Rotation");
break;
case Animation::TYPE_SCALE_3D:
- text += " (Scale)";
+ track_type = TTR("Scale");
break;
case Animation::TYPE_BLEND_SHAPE:
- text += " (BlendShape)";
+ track_type = TTR("BlendShape");
break;
case Animation::TYPE_METHOD:
- text += " (Methods)";
+ track_type = TTR("Methods");
break;
case Animation::TYPE_BEZIER:
- text += " (Bezier)";
+ track_type = TTR("Bezier");
break;
case Animation::TYPE_AUDIO:
- text += " (Audio)";
+ track_type = TTR("Audio");
break;
default: {
};
}
+ if (!track_type.is_empty()) {
+ text += vformat(" (%s)", track_type);
+ }
TreeItem *it = track_copy_select->create_item(troot);
it->set_editable(0, true);
@@ -6308,8 +6306,6 @@ AnimationTrackEditor::AnimationTrackEditor() {
add_child(method_selector);
method_selector->connect("selected", callable_mp(this, &AnimationTrackEditor::_add_method_key));
- insert_queue = false;
-
insert_confirm = memnew(ConfirmationDialog);
add_child(insert_confirm);
insert_confirm->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_confirm_insert_list));
@@ -6327,8 +6323,6 @@ AnimationTrackEditor::AnimationTrackEditor() {
insert_confirm_reset->set_text(TTR("Create RESET Track(s)", ""));
insert_confirm_reset->set_pressed(EDITOR_GET("editors/animation/default_create_reset_tracks"));
ichb->add_child(insert_confirm_reset);
- keying = false;
- moving_selection = false;
key_edit = nullptr;
multi_key_edit = nullptr;
@@ -6338,7 +6332,6 @@ AnimationTrackEditor::AnimationTrackEditor() {
box_selection->set_mouse_filter(MOUSE_FILTER_IGNORE);
box_selection->hide();
box_selection->connect("draw", callable_mp(this, &AnimationTrackEditor::_box_selection_draw));
- box_selecting = false;
// Default Plugins.
@@ -6435,7 +6428,6 @@ AnimationTrackEditor::AnimationTrackEditor() {
track_copy_select->set_hide_root(true);
track_vbox->add_child(track_copy_select);
track_copy_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed), varray(EDIT_COPY_TRACKS_CONFIRM));
- animation_changing_awaiting_update = false;
}
AnimationTrackEditor::~AnimationTrackEditor() {
diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h
index d0029ff80f..1baebc469e 100644
--- a/editor/animation_track_editor.h
+++ b/editor/animation_track_editor.h
@@ -77,16 +77,16 @@ class AnimationTimelineEdit : public Range {
UndoRedo *undo_redo;
Rect2 hsize_rect;
- bool editing;
- bool use_fps;
+ bool editing = false;
+ bool use_fps = false;
Ref<ViewPanner> panner;
void _scroll_callback(Vector2 p_scroll_vec, bool p_alt);
void _pan_callback(Vector2 p_scroll_vec);
void _zoom_callback(Vector2 p_scroll_vec, Vector2 p_origin, bool p_alt);
- bool dragging_timeline;
- bool dragging_hsize;
+ bool dragging_timeline = false;
+ bool dragging_hsize = false;
float dragging_hsize_from;
float dragging_hsize_at;
@@ -121,6 +121,8 @@ public:
void set_hscroll(HScrollBar *p_hscroll);
+ virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override;
+
AnimationTimelineEdit();
};
@@ -169,7 +171,7 @@ class AnimationTrackEdit : public Control {
PopupMenu *menu;
- bool clicking_on_name;
+ bool clicking_on_name = false;
void _zoom_changed();
@@ -182,14 +184,16 @@ class AnimationTrackEdit : public Control {
void _play_position_draw();
bool _is_value_key_valid(const Variant &p_key_value, Variant::Type &r_valid_type) const;
+ Ref<Texture2D> _get_key_type_icon() const;
+
mutable int dropping_at;
float insert_at_pos;
- bool moving_selection_attempt;
+ bool moving_selection_attempt = false;
int select_single_attempt;
- bool moving_selection;
+ bool moving_selection = false;
float moving_selection_from_ofs;
- bool in_group;
+ bool in_group = false;
AnimationTrackEditor *editor;
protected:
@@ -308,7 +312,7 @@ class AnimationTrackEditor : public VBoxContainer {
Vector<AnimationTrackEdit *> track_edits;
Vector<AnimationTrackEditGroup *> groups;
- bool animation_changing_awaiting_update;
+ bool animation_changing_awaiting_update = false;
void _animation_update();
int _get_track_selected();
void _animation_changed();
@@ -338,7 +342,7 @@ class AnimationTrackEditor : public VBoxContainer {
int adding_track_type;
NodePath adding_track_path;
- bool keying;
+ bool keying = false;
struct InsertData {
Animation::TrackType type;
@@ -353,7 +357,7 @@ class AnimationTrackEditor : public VBoxContainer {
CheckBox *insert_confirm_bezier;
CheckBox *insert_confirm_reset;
ConfirmationDialog *insert_confirm;
- bool insert_queue;
+ bool insert_queue = false;
List<InsertData> insert_data;
void _query_insert(const InsertData &p_id);
@@ -408,7 +412,7 @@ class AnimationTrackEditor : public VBoxContainer {
void _key_selected(int p_key, bool p_single, int p_track);
void _key_deselected(int p_key, int p_track);
- bool moving_selection;
+ bool moving_selection = false;
float moving_selection_offset;
void _move_selection_begin();
void _move_selection(float p_offset);
@@ -423,7 +427,7 @@ class AnimationTrackEditor : public VBoxContainer {
Control *box_selection;
void _box_selection_draw();
- bool box_selecting;
+ bool box_selecting = false;
Vector2 box_selecting_from;
Rect2 box_select_rect;
void _scroll_input(const Ref<InputEvent> &p_event);
diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp
index e87678a51b..2ad8b2d2a4 100644
--- a/editor/animation_track_editor_plugins.cpp
+++ b/editor/animation_track_editor_plugins.cpp
@@ -1080,12 +1080,7 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) {
len_resizing_index = i;
}
}
-
- if (use_hsize_cursor) {
- set_default_cursor_shape(CURSOR_HSIZE);
- } else {
- set_default_cursor_shape(CURSOR_ARROW);
- }
+ over_drag_position = use_hsize_cursor;
}
if (len_resizing && mm.is_valid()) {
@@ -1097,7 +1092,7 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) {
}
Ref<InputEventMouseButton> mb = p_event;
- if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT && get_default_cursor_shape() == CURSOR_HSIZE) {
+ if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT && over_drag_position) {
len_resizing = true;
len_resizing_start = mb->is_shift_pressed();
len_resizing_from_px = mb->get_position().x;
@@ -1124,7 +1119,6 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) {
get_undo_redo()->commit_action();
}
- len_resizing = false;
len_resizing_index = -1;
update();
accept_event();
@@ -1134,6 +1128,14 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) {
AnimationTrackEdit::gui_input(p_event);
}
+Control::CursorShape AnimationTrackEditTypeAudio::get_cursor_shape(const Point2 &p_pos) const {
+ if (over_drag_position || len_resizing) {
+ return Control::CURSOR_HSIZE;
+ } else {
+ return get_default_cursor_shape();
+ }
+}
+
////////////////////
/// SUB ANIMATION ///
diff --git a/editor/animation_track_editor_plugins.h b/editor/animation_track_editor_plugins.h
index 271c1a000b..adfe517356 100644
--- a/editor/animation_track_editor_plugins.h
+++ b/editor/animation_track_editor_plugins.h
@@ -81,7 +81,7 @@ class AnimationTrackEditSpriteFrame : public AnimationTrackEdit {
GDCLASS(AnimationTrackEditSpriteFrame, AnimationTrackEdit);
ObjectID id;
- bool is_coords;
+ bool is_coords = false;
public:
virtual int get_key_height() const override;
@@ -92,7 +92,7 @@ public:
void set_node(Object *p_object);
void set_as_coords();
- AnimationTrackEditSpriteFrame() { is_coords = false; }
+ AnimationTrackEditSpriteFrame() {}
};
class AnimationTrackEditSubAnim : public AnimationTrackEdit {
@@ -114,11 +114,12 @@ class AnimationTrackEditTypeAudio : public AnimationTrackEdit {
void _preview_changed(ObjectID p_which);
- bool len_resizing;
+ bool len_resizing = false;
bool len_resizing_start;
int len_resizing_index;
float len_resizing_from_px;
float len_resizing_rel;
+ bool over_drag_position = false;
protected:
static void _bind_methods();
@@ -134,6 +135,8 @@ public:
virtual bool is_key_selectable_by_distance() const override;
virtual void draw_key(int p_index, float p_pixels_sec, int p_x, bool p_selected, int p_clip_left, int p_clip_right) override;
+ virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override;
+
AnimationTrackEditTypeAudio();
};
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index 22d3155159..2896fda2d2 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -618,8 +618,6 @@ void FindReplaceBar::_bind_methods() {
FindReplaceBar::FindReplaceBar() {
results_count = -1;
- replace_all_mode = false;
- preserve_cursor = false;
vbc_lineedit = memnew(VBoxContainer);
add_child(vbc_lineedit);
@@ -1887,8 +1885,6 @@ CodeTextEditor::CodeTextEditor() {
error_button->set_default_cursor_shape(CURSOR_POINTING_HAND);
error_button->connect("pressed", callable_mp(this, &CodeTextEditor::_error_button_pressed));
error_button->set_tooltip(TTR("Errors"));
-
- is_errors_panel_opened = false;
set_error_count(0);
// Warnings
@@ -1899,8 +1895,6 @@ CodeTextEditor::CodeTextEditor() {
warning_button->set_default_cursor_shape(CURSOR_POINTING_HAND);
warning_button->connect("pressed", callable_mp(this, &CodeTextEditor::_warning_button_pressed));
warning_button->set_tooltip(TTR("Warnings"));
-
- is_warnings_panel_opened = false;
set_warning_count(0);
// Line and column
diff --git a/editor/code_editor.h b/editor/code_editor.h
index 24316bf8b0..d7025e7fd9 100644
--- a/editor/code_editor.h
+++ b/editor/code_editor.h
@@ -86,8 +86,8 @@ class FindReplaceBar : public HBoxContainer {
int result_col;
int results_count;
- bool replace_all_mode;
- bool preserve_cursor;
+ bool replace_all_mode = false;
+ bool preserve_cursor = false;
void _get_search_from(int &r_line, int &r_col);
void _update_results_count();
@@ -206,8 +206,8 @@ protected:
void _notification(int);
static void _bind_methods();
- bool is_warnings_panel_opened;
- bool is_errors_panel_opened;
+ bool is_warnings_panel_opened = false;
+ bool is_errors_panel_opened = false;
public:
void trim_trailing_whitespace();
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp
index df2a66f182..0f8667f81a 100644
--- a/editor/connections_dialog.cpp
+++ b/editor/connections_dialog.cpp
@@ -180,9 +180,6 @@ void ConnectDialog::_unbind_count_changed(double p_count) {
* Adds a new parameter bind to connection.
*/
void ConnectDialog::_add_bind() {
- if (cdbinds->params.size() >= VARIANT_ARG_MAX) {
- return;
- }
Variant::Type vt = (Variant::Type)type_list->get_item_id(type_list->get_selected());
Variant value;
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index 7e59fc31c4..f9858aa514 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -130,8 +130,8 @@ bool CreateDialog::_should_hide_type(const String &p_type) const {
}
if (ClassDB::class_exists(p_type)) {
- if (!ClassDB::can_instantiate(p_type)) {
- return true; // Can't create abstract class.
+ if (!ClassDB::can_instantiate(p_type) || ClassDB::is_virtual(p_type)) {
+ return true; // Can't create abstract or virtual class.
}
if (!ClassDB::is_parent_class(p_type, base_type)) {
diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp
index d5a4f5d138..1a7b11d888 100644
--- a/editor/debugger/editor_debugger_node.cpp
+++ b/editor/debugger/editor_debugger_node.cpp
@@ -610,12 +610,12 @@ void EditorDebuggerNode::_save_node_requested(ObjectID p_id, const String &p_fil
}
// Remote inspector/edit.
-void EditorDebuggerNode::_method_changeds(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE) {
+void EditorDebuggerNode::_method_changeds(void *p_ud, Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount) {
if (!singleton) {
return;
}
_for_all(singleton->tabs, [&](ScriptEditorDebugger *dbg) {
- dbg->_method_changed(p_base, p_name, VARIANT_ARG_PASS);
+ dbg->_method_changed(p_base, p_name, p_args, p_argcount);
});
}
diff --git a/editor/debugger/editor_debugger_node.h b/editor/debugger/editor_debugger_node.h
index 6fcdbf5f73..36f99113ad 100644
--- a/editor/debugger/editor_debugger_node.h
+++ b/editor/debugger/editor_debugger_node.h
@@ -171,7 +171,7 @@ public:
// Remote inspector/edit.
void request_remote_tree();
- static void _method_changeds(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE);
+ static void _method_changeds(void *p_ud, Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount);
static void _property_changeds(void *p_ud, Object *p_base, const StringName &p_property, const Variant &p_value);
// LiveDebug
diff --git a/editor/debugger/editor_profiler.cpp b/editor/debugger/editor_profiler.cpp
index 4b263e5152..32e3c3679a 100644
--- a/editor/debugger/editor_profiler.cpp
+++ b/editor/debugger/editor_profiler.cpp
@@ -659,7 +659,7 @@ EditorProfiler::EditorProfiler() {
h_split->add_child(graph);
graph->set_h_size_flags(SIZE_EXPAND_FILL);
- int metric_size = CLAMP(int(EDITOR_DEF("debugger/profiler_frame_history_size", 600)), 60, 1024);
+ int metric_size = CLAMP(int(EDITOR_GET("debugger/profiler_frame_history_size")), 60, 1024);
frame_metrics.resize(metric_size);
total_metrics = 0;
last_metric = -1;
diff --git a/editor/debugger/editor_visual_profiler.cpp b/editor/debugger/editor_visual_profiler.cpp
index 5df86c70fe..885d8bd5c4 100644
--- a/editor/debugger/editor_visual_profiler.cpp
+++ b/editor/debugger/editor_visual_profiler.cpp
@@ -727,7 +727,7 @@ EditorVisualProfiler::EditorVisualProfiler() {
hb->add_child(memnew(Label(TTR("Measure:"))));
display_mode = memnew(OptionButton);
- display_mode->add_item(TTR("Frame Time (msec)"));
+ display_mode->add_item(TTR("Frame Time (ms)"));
display_mode->add_item(TTR("Frame %"));
display_mode->connect("item_selected", callable_mp(this, &EditorVisualProfiler::_combo_changed));
@@ -789,7 +789,7 @@ EditorVisualProfiler::EditorVisualProfiler() {
h_split->add_child(graph);
graph->set_h_size_flags(SIZE_EXPAND_FILL);
- int metric_size = CLAMP(int(EDITOR_DEF("debugger/profiler_frame_history_size", 600)), 60, 1024);
+ int metric_size = CLAMP(int(EDITOR_GET("debugger/profiler_frame_history_size")), 60, 1024);
frame_metrics.resize(metric_size);
last_metric = -1;
//cursor_metric=-1;
diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp
index 0b9631c816..453e9e3a0c 100644
--- a/editor/debugger/script_editor_debugger.cpp
+++ b/editor/debugger/script_editor_debugger.cpp
@@ -1064,18 +1064,16 @@ int ScriptEditorDebugger::_get_res_path_cache(const String &p_path) {
return last_path_id;
}
-void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE) {
+void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount) {
if (!p_base || !live_debug || !is_session_active() || !EditorNode::get_singleton()->get_edited_scene()) {
return;
}
Node *node = Object::cast_to<Node>(p_base);
- VARIANT_ARGPTRS
-
- for (int i = 0; i < VARIANT_ARG_MAX; i++) {
+ for (int i = 0; i < p_argcount; i++) {
//no pointers, sorry
- if (argptr[i] && (argptr[i]->get_type() == Variant::OBJECT || argptr[i]->get_type() == Variant::RID)) {
+ if (p_args[i]->get_type() == Variant::OBJECT || p_args[i]->get_type() == Variant::RID) {
return;
}
}
@@ -1087,9 +1085,9 @@ void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_n
Array msg;
msg.push_back(pathid);
msg.push_back(p_name);
- for (int i = 0; i < VARIANT_ARG_MAX; i++) {
+ for (int i = 0; i < p_argcount; i++) {
//no pointers, sorry
- msg.push_back(*argptr[i]);
+ msg.push_back(*p_args[i]);
}
_put_msg("scene:live_node_call", msg);
@@ -1105,9 +1103,9 @@ void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_n
Array msg;
msg.push_back(pathid);
msg.push_back(p_name);
- for (int i = 0; i < VARIANT_ARG_MAX; i++) {
+ for (int i = 0; i < p_argcount; i++) {
//no pointers, sorry
- msg.push_back(*argptr[i]);
+ msg.push_back(*p_args[i]);
}
_put_msg("scene:live_res_call", msg);
diff --git a/editor/debugger/script_editor_debugger.h b/editor/debugger/script_editor_debugger.h
index e4d3a2fa09..486ac26ef7 100644
--- a/editor/debugger/script_editor_debugger.h
+++ b/editor/debugger/script_editor_debugger.h
@@ -187,7 +187,7 @@ private:
void _live_edit_set();
void _live_edit_clear();
- void _method_changed(Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE);
+ void _method_changed(Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount);
void _property_changed(Object *p_base, const StringName &p_property, const Variant &p_value);
void _error_activated();
diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp
index 1802bdec93..95b3a02631 100644
--- a/editor/dependency_editor.cpp
+++ b/editor/dependency_editor.cpp
@@ -749,12 +749,11 @@ void OrphanResourcesDialog::_find_to_delete(TreeItem *p_item, List<String> &path
}
void OrphanResourcesDialog::_delete_confirm() {
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
for (const String &E : paths) {
da->remove(E);
EditorFileSystem::get_singleton()->update_file(E);
}
- memdelete(da);
refresh();
}
diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp
index a9d18e9dcc..adad8fdba8 100644
--- a/editor/doc_tools.cpp
+++ b/editor/doc_tools.cpp
@@ -685,6 +685,11 @@ void DocTools::generate(bool p_basic_types) {
for (int j = 0; j < Variant::OP_AND; j++) { // Showing above 'and' is pretty confusing and there are a lot of variations.
for (int k = 0; k < Variant::VARIANT_MAX; k++) {
+ // Prevent generating for comparison with null.
+ if (Variant::Type(k) == Variant::NIL && (Variant::Operator(j) == Variant::OP_EQUAL || Variant::Operator(j) == Variant::OP_NOT_EQUAL)) {
+ continue;
+ }
+
Variant::Type rt = Variant::get_operator_return_type(Variant::Operator(j), Variant::Type(i), Variant::Type(k));
if (rt != Variant::NIL) { // Has operator.
// Skip String % operator as it's registered separately for each Variant arg type,
diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp
index 3835399c99..f1674c47c5 100644
--- a/editor/editor_asset_installer.cpp
+++ b/editor/editor_asset_installer.cpp
@@ -277,10 +277,8 @@ void EditorAssetInstaller::ok_pressed() {
dirpath = dirpath.substr(0, dirpath.length() - 1);
}
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
da->make_dir(dirpath);
- memdelete(da);
-
} else {
Vector<uint8_t> data;
data.resize(info.uncompressed_size);
@@ -358,7 +356,5 @@ EditorAssetInstaller::EditorAssetInstaller() {
get_ok_button()->set_text(TTR("Install"));
set_title(TTR("Asset Installer"));
- updating = false;
-
set_hide_on_ok(true);
}
diff --git a/editor/editor_asset_installer.h b/editor/editor_asset_installer.h
index f5993f73e7..58c232f351 100644
--- a/editor/editor_asset_installer.h
+++ b/editor/editor_asset_installer.h
@@ -42,7 +42,7 @@ class EditorAssetInstaller : public ConfirmationDialog {
String asset_name;
AcceptDialog *error;
Map<String, TreeItem *> status_map;
- bool updating;
+ bool updating = false;
void _item_edited();
void _check_propagated_to_item(Object *p_obj, int column);
virtual void ok_pressed() override;
diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp
index b64b48b4ee..4474d6893a 100644
--- a/editor/editor_audio_buses.cpp
+++ b/editor/editor_audio_buses.cpp
@@ -771,9 +771,7 @@ void EditorAudioBus::_bind_methods() {
EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) {
buses = p_buses;
- updating_bus = false;
is_master = p_is_master;
- hovering_drop = false;
set_tooltip(TTR("Drag & drop to rearrange."));
@@ -919,13 +917,13 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) {
ClassDB::get_inheriters_from_class("AudioEffect", &effects);
effects.sort_custom<StringName::AlphCompare>();
for (const StringName &E : effects) {
- if (!ClassDB::can_instantiate(E)) {
+ if (!ClassDB::can_instantiate(E) || ClassDB::is_virtual(E)) {
continue;
}
String name = E.operator String().replace("AudioEffect", "");
effect_options->add_item(name);
- effect_options->set_item_metadata(effect_options->get_item_count() - 1, E);
+ effect_options->set_item_metadata(-1, E);
}
bus_options = memnew(MenuButton);
@@ -992,7 +990,6 @@ void EditorAudioBusDrop::_bind_methods() {
}
EditorAudioBusDrop::EditorAudioBusDrop() {
- hovering_drop = false;
}
void EditorAudioBuses::_update_buses() {
diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h
index a830a2719d..0020b61370 100644
--- a/editor/editor_audio_buses.h
+++ b/editor/editor_audio_buses.h
@@ -85,9 +85,9 @@ class EditorAudioBus : public PanelContainer {
Tree *effects;
- bool updating_bus;
+ bool updating_bus = false;
bool is_master;
- mutable bool hovering_drop;
+ mutable bool hovering_drop = false;
virtual void gui_input(const Ref<InputEvent> &p_event) override;
void _effects_gui_input(Ref<InputEvent> p_event);
@@ -140,7 +140,7 @@ class EditorAudioBusDrop : public Control {
virtual bool can_drop_data(const Point2 &p_point, const Variant &p_data) const override;
virtual void drop_data(const Point2 &p_point, const Variant &p_data) override;
- mutable bool hovering_drop;
+ mutable bool hovering_drop = false;
protected:
static void _bind_methods();
diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp
index 281d614ea9..b37b06748d 100644
--- a/editor/editor_autoload_settings.cpp
+++ b/editor/editor_autoload_settings.cpp
@@ -35,6 +35,7 @@
#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
+#include "editor/filesystem_dock.h"
#include "project_settings_editor.h"
#include "scene/main/window.h"
#include "scene/resources/packed_scene.h"
@@ -52,7 +53,7 @@ void EditorAutoloadSettings::_notification(int p_what) {
file_dialog->add_filter("*." + E);
}
- for (const AutoLoadInfo &info : autoload_cache) {
+ for (const AutoloadInfo &info : autoload_cache) {
if (info.node && info.in_editor) {
get_tree()->get_root()->call_deferred(SNAME("add_child"), info.node);
}
@@ -63,6 +64,28 @@ void EditorAutoloadSettings::_notification(int p_what) {
case NOTIFICATION_THEME_CHANGED: {
browse_button->set_icon(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")));
} break;
+
+ case NOTIFICATION_VISIBILITY_CHANGED: {
+ FileSystemDock *dock = FileSystemDock::get_singleton();
+
+ if (dock != nullptr) {
+ ScriptCreateDialog *dialog = dock->get_script_create_dialog();
+
+ if (dialog != nullptr) {
+ Callable script_created = callable_mp(this, &EditorAutoloadSettings::_script_created);
+
+ if (is_visible_in_tree()) {
+ if (!dialog->is_connected(SNAME("script_created"), script_created)) {
+ dialog->connect("script_created", script_created);
+ }
+ } else {
+ if (dialog->is_connected(SNAME("script_created"), script_created)) {
+ dialog->disconnect("script_created", script_created);
+ }
+ }
+ }
+ }
+ } break;
}
}
@@ -122,7 +145,7 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String &p_name, Strin
for (const String &E : keywords) {
if (E == p_name) {
if (r_error) {
- *r_error = TTR("Invalid name.") + " " + TTR("Keyword cannot be used as an AutoLoad name.");
+ *r_error = TTR("Invalid name.") + " " + TTR("Keyword cannot be used as an Autoload name.");
}
return false;
@@ -134,12 +157,22 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String &p_name, Strin
}
void EditorAutoloadSettings::_autoload_add() {
- if (autoload_add(autoload_add_name->get_text(), autoload_add_path->get_text())) {
- autoload_add_path->set_text("");
- }
+ if (autoload_add_path->get_text().is_empty()) {
+ ScriptCreateDialog *dialog = FileSystemDock::get_singleton()->get_script_create_dialog();
+ String fpath = path;
+ if (!fpath.ends_with("/")) {
+ fpath = fpath.get_base_dir();
+ }
+ dialog->config("Node", fpath.plus_file(vformat("%s.gd", autoload_add_name->get_text().camelcase_to_underscore())), false, false);
+ dialog->popup_centered();
+ } else {
+ if (autoload_add(autoload_add_name->get_text(), autoload_add_path->get_text())) {
+ autoload_add_path->set_text("");
+ }
- autoload_add_name->set_text("");
- add_autoload->set_disabled(true);
+ autoload_add_name->set_text("");
+ add_autoload->set_disabled(true);
+ }
}
void EditorAutoloadSettings::_autoload_selected() {
@@ -227,7 +260,7 @@ void EditorAutoloadSettings::_autoload_edited() {
path = "*" + path;
}
- undo_redo->create_action(TTR("Toggle AutoLoad Globals"));
+ undo_redo->create_action(TTR("Toggle Autoload Globals"));
undo_redo->add_do_property(ProjectSettings::get_singleton(), base, path);
undo_redo->add_undo_property(ProjectSettings::get_singleton(), base, ProjectSettings::get_singleton()->get(base));
@@ -351,14 +384,13 @@ void EditorAutoloadSettings::_autoload_text_submitted(const String p_name) {
}
void EditorAutoloadSettings::_autoload_path_text_changed(const String p_path) {
- add_autoload->set_disabled(
- p_path.is_empty() || !_autoload_name_is_valid(autoload_add_name->get_text(), nullptr));
+ add_autoload->set_disabled(!_autoload_name_is_valid(autoload_add_name->get_text(), nullptr));
}
void EditorAutoloadSettings::_autoload_text_changed(const String p_name) {
String error_string;
bool is_name_valid = _autoload_name_is_valid(p_name, &error_string);
- add_autoload->set_disabled(autoload_add_path->get_text().is_empty() || !is_name_valid);
+ add_autoload->set_disabled(!is_name_valid);
error_message->set_text(error_string);
error_message->set_visible(!autoload_add_name->get_text().is_empty() && !is_name_valid);
}
@@ -378,13 +410,13 @@ Node *EditorAutoloadSettings::_create_autoload(const String &p_path) {
Object *obj = ClassDB::instantiate(ibt);
- ERR_FAIL_COND_V_MSG(!obj, nullptr, "Cannot instance script for AutoLoad, expected 'Node' inheritance, got: " + String(ibt) + ".");
+ ERR_FAIL_COND_V_MSG(!obj, nullptr, "Cannot instance script for Autoload, expected 'Node' inheritance, got: " + String(ibt) + ".");
n = Object::cast_to<Node>(obj);
n->set_script(script);
}
- ERR_FAIL_COND_V_MSG(!n, nullptr, "Path in AutoLoad not a node or script: " + p_path + ".");
+ ERR_FAIL_COND_V_MSG(!n, nullptr, "Path in Autoload not a node or script: " + p_path + ".");
return n;
}
@@ -396,10 +428,10 @@ void EditorAutoloadSettings::update_autoload() {
updating_autoload = true;
- Map<String, AutoLoadInfo> to_remove;
- List<AutoLoadInfo *> to_add;
+ Map<String, AutoloadInfo> to_remove;
+ List<AutoloadInfo *> to_add;
- for (const AutoLoadInfo &info : autoload_cache) {
+ for (const AutoloadInfo &info : autoload_cache) {
to_remove.insert(info.name, info);
}
@@ -423,7 +455,7 @@ void EditorAutoloadSettings::update_autoload() {
continue;
}
- AutoLoadInfo info;
+ AutoloadInfo info;
info.is_singleton = path.begins_with("*");
if (info.is_singleton) {
@@ -436,7 +468,7 @@ void EditorAutoloadSettings::update_autoload() {
bool need_to_add = true;
if (to_remove.has(name)) {
- AutoLoadInfo &old_info = to_remove[name];
+ AutoloadInfo &old_info = to_remove[name];
if (old_info.path == info.path) {
// Still the same resource, check status
info.node = old_info.node;
@@ -478,8 +510,8 @@ void EditorAutoloadSettings::update_autoload() {
}
// Remove deleted/changed autoloads
- for (KeyValue<String, AutoLoadInfo> &E : to_remove) {
- AutoLoadInfo &info = E.value;
+ for (KeyValue<String, AutoloadInfo> &E : to_remove) {
+ AutoloadInfo &info = E.value;
if (info.is_singleton) {
for (int i = 0; i < ScriptServer::get_language_count(); i++) {
ScriptServer::get_language(i)->remove_named_global_constant(info.name);
@@ -500,7 +532,7 @@ void EditorAutoloadSettings::update_autoload() {
// Load new/changed autoloads
List<Node *> nodes_to_add;
- for (AutoLoadInfo *info : to_add) {
+ for (AutoloadInfo *info : to_add) {
info->node = _create_autoload(info->path);
ERR_CONTINUE(!info->node);
@@ -540,6 +572,14 @@ void EditorAutoloadSettings::update_autoload() {
updating_autoload = false;
}
+void EditorAutoloadSettings::_script_created(Ref<Script> p_script) {
+ FileSystemDock::get_singleton()->get_script_create_dialog()->hide();
+ path = p_script->get_path().get_base_dir();
+ autoload_add_path->set_text(p_script->get_path());
+ autoload_add_name->set_text(p_script->get_path().get_file().get_basename().capitalize().replace(" ", ""));
+ _autoload_add();
+}
+
Variant EditorAutoloadSettings::get_drag_data_fw(const Point2 &p_point, Control *p_control) {
if (autoload_cache.size() <= 1) {
return false;
@@ -632,8 +672,8 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant &
int order = ProjectSettings::get_singleton()->get_order("autoload/" + name);
- AutoLoadInfo aux;
- List<AutoLoadInfo>::Element *E = nullptr;
+ AutoloadInfo aux;
+ List<AutoloadInfo>::Element *E = nullptr;
if (!move_to_back) {
aux.order = order;
@@ -649,7 +689,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant &
for (int i = 0; i < autoloads.size(); i++) {
aux.order = ProjectSettings::get_singleton()->get_order("autoload/" + autoloads[i]);
- List<AutoLoadInfo>::Element *I = autoload_cache.find(aux);
+ List<AutoloadInfo>::Element *I = autoload_cache.find(aux);
if (move_to_back) {
autoload_cache.move_to_back(I);
@@ -664,7 +704,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant &
int i = 0;
- for (const AutoLoadInfo &F : autoload_cache) {
+ for (const AutoloadInfo &F : autoload_cache) {
orders.write[i++] = F.order;
}
@@ -676,7 +716,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant &
i = 0;
- for (const AutoLoadInfo &F : autoload_cache) {
+ for (const AutoloadInfo &F : autoload_cache) {
undo_redo->add_do_method(ProjectSettings::get_singleton(), "set_order", "autoload/" + F.name, orders[i++]);
undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set_order", "autoload/" + F.name, F.order);
}
@@ -697,18 +737,18 @@ bool EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_
String error;
if (!_autoload_name_is_valid(name, &error)) {
- EditorNode::get_singleton()->show_warning(TTR("Can't add AutoLoad:") + "\n" + error);
+ EditorNode::get_singleton()->show_warning(TTR("Can't add Autoload:") + "\n" + error);
return false;
}
const String &path = p_path;
if (!FileAccess::exists(path)) {
- EditorNode::get_singleton()->show_warning(TTR("Can't add AutoLoad:") + "\n" + vformat(TTR("%s is an invalid path. File does not exist."), path));
+ EditorNode::get_singleton()->show_warning(TTR("Can't add Autoload:") + "\n" + vformat(TTR("%s is an invalid path. File does not exist."), path));
return false;
}
if (!path.begins_with("res://")) {
- EditorNode::get_singleton()->show_warning(TTR("Can't add AutoLoad:") + "\n" + vformat(TTR("%s is an invalid path. Not in resource path (res://)."), path));
+ EditorNode::get_singleton()->show_warning(TTR("Can't add Autoload:") + "\n" + vformat(TTR("%s is an invalid path. Not in resource path (res://)."), path));
return false;
}
@@ -716,7 +756,7 @@ bool EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_
UndoRedo *undo_redo = EditorNode::get_undo_redo();
- undo_redo->create_action(TTR("Add AutoLoad"));
+ undo_redo->create_action(TTR("Add Autoload"));
// Singleton autoloads are represented with a leading "*" in their path.
undo_redo->add_do_property(ProjectSettings::get_singleton(), name, "*" + path);
@@ -791,7 +831,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
continue;
}
- AutoLoadInfo info;
+ AutoloadInfo info;
info.is_singleton = path.begins_with("*");
if (info.is_singleton) {
@@ -812,7 +852,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
autoload_cache.push_back(info);
}
- for (AutoLoadInfo &info : autoload_cache) {
+ for (AutoloadInfo &info : autoload_cache) {
info.node = _create_autoload(info.path);
if (info.node) {
@@ -833,11 +873,6 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
}
}
- autoload_changed = "autoload_changed";
-
- updating_autoload = false;
- selected_autoload = "";
-
HBoxContainer *hbc = memnew(HBoxContainer);
add_child(hbc);
@@ -854,6 +889,8 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
autoload_add_path = memnew(LineEdit);
hbc->add_child(autoload_add_path);
autoload_add_path->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ autoload_add_path->set_clear_button_enabled(true);
+ autoload_add_path->set_placeholder(vformat(TTR(R"(Set path or press "%s" to create a script.)"), TTR("Add")));
autoload_add_path->connect("text_changed", callable_mp(this, &EditorAutoloadSettings::_autoload_path_text_changed));
browse_button = memnew(Button);
@@ -921,7 +958,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
}
EditorAutoloadSettings::~EditorAutoloadSettings() {
- for (const AutoLoadInfo &info : autoload_cache) {
+ for (const AutoloadInfo &info : autoload_cache) {
if (info.node && !info.in_editor) {
memdelete(info.node);
}
diff --git a/editor/editor_autoload_settings.h b/editor/editor_autoload_settings.h
index 135ff48a0c..380cadbebb 100644
--- a/editor/editor_autoload_settings.h
+++ b/editor/editor_autoload_settings.h
@@ -47,9 +47,10 @@ class EditorAutoloadSettings : public VBoxContainer {
BUTTON_DELETE
};
- String autoload_changed;
+ String path = "res://";
+ String autoload_changed = "autoload_changed";
- struct AutoLoadInfo {
+ struct AutoloadInfo {
String name;
String path;
bool is_singleton = false;
@@ -57,24 +58,23 @@ class EditorAutoloadSettings : public VBoxContainer {
int order = 0;
Node *node = nullptr;
- bool operator==(const AutoLoadInfo &p_info) const {
+ bool operator==(const AutoloadInfo &p_info) const {
return order == p_info.order;
}
};
- List<AutoLoadInfo> autoload_cache;
+ List<AutoloadInfo> autoload_cache;
- bool updating_autoload;
- int number_of_autoloads;
+ bool updating_autoload = false;
String selected_autoload;
- Tree *tree;
- LineEdit *autoload_add_name;
- Button *add_autoload;
- LineEdit *autoload_add_path;
- Label *error_message;
- Button *browse_button;
- EditorFileDialog *file_dialog;
+ Tree *tree = nullptr;
+ LineEdit *autoload_add_name = nullptr;
+ Button *add_autoload = nullptr;
+ LineEdit *autoload_add_path = nullptr;
+ Label *error_message = nullptr;
+ Button *browse_button = nullptr;
+ EditorFileDialog *file_dialog = nullptr;
bool _autoload_name_is_valid(const String &p_name, String *r_error = nullptr);
@@ -90,6 +90,8 @@ class EditorAutoloadSettings : public VBoxContainer {
void _autoload_file_callback(const String &p_path);
Node *_create_autoload(const String &p_path);
+ void _script_created(Ref<Script> p_script);
+
Variant get_drag_data_fw(const Point2 &p_point, Control *p_control);
bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_control) const;
void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_control);
diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp
index 69c7e9d52c..c16451f3c6 100644
--- a/editor/editor_data.cpp
+++ b/editor/editor_data.cpp
@@ -1206,9 +1206,6 @@ void EditorSelection::clear() {
}
EditorSelection::EditorSelection() {
- emitted = false;
- changed = false;
- nl_changed = false;
}
EditorSelection::~EditorSelection() {
diff --git a/editor/editor_data.h b/editor/editor_data.h
index 0d1efc9b62..79f8227e5c 100644
--- a/editor/editor_data.h
+++ b/editor/editor_data.h
@@ -239,9 +239,9 @@ class EditorSelection : public Object {
private:
Map<Node *, Object *> selection;
- bool emitted;
- bool changed;
- bool nl_changed;
+ bool emitted = false;
+ bool changed = false;
+ bool nl_changed = false;
void _node_removed(Node *p_node);
diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp
index f181c04004..32ef87a4ab 100644
--- a/editor/editor_dir_dialog.cpp
+++ b/editor/editor_dir_dialog.cpp
@@ -175,8 +175,6 @@ void EditorDirDialog::_bind_methods() {
}
EditorDirDialog::EditorDirDialog() {
- updating = false;
-
set_title(TTR("Choose a Directory"));
set_hide_on_ok(false);
@@ -206,6 +204,4 @@ EditorDirDialog::EditorDirDialog() {
add_child(mkdirerr);
get_ok_button()->set_text(TTR("Choose"));
-
- must_reload = false;
}
diff --git a/editor/editor_dir_dialog.h b/editor/editor_dir_dialog.h
index 053c1f5503..e97b5ce8af 100644
--- a/editor/editor_dir_dialog.h
+++ b/editor/editor_dir_dialog.h
@@ -47,7 +47,7 @@ class EditorDirDialog : public ConfirmationDialog {
Set<String> opened_paths;
Tree *tree;
- bool updating;
+ bool updating = false;
void _item_collapsed(Object *p_item);
void _item_activated();
@@ -58,7 +58,7 @@ class EditorDirDialog : public ConfirmationDialog {
void ok_pressed() override;
- bool must_reload;
+ bool must_reload = false;
protected:
void _notification(int p_what);
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp
index 295b477080..c3c8f40164 100644
--- a/editor/editor_export.cpp
+++ b/editor/editor_export.cpp
@@ -542,7 +542,7 @@ void EditorExportPlatform::_edit_filter_list(Set<String> &r_list, const String &
filters.push_back(f);
}
- DirAccess *da = DirAccess::open("res://");
+ DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
ERR_FAIL_NULL(da);
_edit_files_with_filter(da, filters, r_list, exclude);
memdelete(da);
@@ -678,7 +678,6 @@ void EditorExportPlugin::_bind_methods() {
}
EditorExportPlugin::EditorExportPlugin() {
- skipped = false;
}
EditorExportPlatform::FeatureContainers EditorExportPlatform::get_feature_containers(const Ref<EditorExportPreset> &p_preset) {
@@ -1722,7 +1721,6 @@ EditorExport::EditorExport() {
save_timer->set_wait_time(0.8);
save_timer->set_one_shot(true);
save_timer->connect("timeout", callable_mp(this, &EditorExport::_save));
- block_save = false;
_export_presets_updated = "export_presets_updated";
@@ -1831,10 +1829,6 @@ List<String> EditorExportPlatformPC::get_binary_extensions(const Ref<EditorExpor
Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) {
ExportNotifier notifier(*this, p_preset, p_debug, p_path, p_flags);
- if (!DirAccess::exists(p_path.get_base_dir())) {
- return ERR_FILE_BAD_PATH;
- }
-
String custom_debug = p_preset->get("custom_template/debug");
String custom_release = p_preset->get("custom_template/release");
@@ -1863,9 +1857,9 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr
return ERR_FILE_NOT_FOUND;
}
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ da->make_dir_recursive(p_path.get_base_dir());
Error err = da->copy(template_path, p_path, get_chmod_flags());
- memdelete(da);
if (err == OK) {
String pck_path;
@@ -1901,7 +1895,6 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr
err = sign_shared_object(p_preset, p_debug, p_path.get_base_dir().plus_file(so_files[i].path.get_file()));
}
}
- memdelete(da);
}
}
diff --git a/editor/editor_export.h b/editor/editor_export.h
index 796fb12793..182312b18f 100644
--- a/editor/editor_export.h
+++ b/editor/editor_export.h
@@ -297,7 +297,7 @@ class EditorExportPlugin : public RefCounted {
bool remap = false;
};
Vector<ExtraFile> extra_files;
- bool skipped;
+ bool skipped = false;
Vector<String> ios_frameworks;
Vector<String> ios_embedded_frameworks;
@@ -379,7 +379,7 @@ class EditorExport : public Node {
StringName _export_presets_updated;
Timer *save_timer;
- bool block_save;
+ bool block_save = false;
static EditorExport *singleton;
diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp
index 008c42b3a7..3d5ca7de42 100644
--- a/editor/editor_feature_profile.cpp
+++ b/editor/editor_feature_profile.cpp
@@ -34,6 +34,7 @@
#include "core/io/json.h"
#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
+#include "editor/editor_property_name_processor.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
@@ -617,7 +618,8 @@ void EditorFeatureProfileManager::_class_list_item_selected() {
property->set_editable(0, true);
property->set_selectable(0, true);
property->set_checked(0, !edited->is_class_property_disabled(class_name, name));
- property->set_text(0, name.capitalize());
+ property->set_text(0, EditorPropertyNameProcessor::get_singleton()->process_name(name));
+ property->set_tooltip(0, EditorPropertyNameProcessor::get_singleton()->make_tooltip_for_name(name));
property->set_metadata(0, name);
String icon_type = Variant::get_type_name(E.type);
property->set_icon(0, EditorNode::get_singleton()->get_class_icon(icon_type));
@@ -1008,7 +1010,5 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() {
update_timer->connect("timeout", callable_mp(this, &EditorFeatureProfileManager::_emit_current_profile_changed));
update_timer->set_one_shot(true);
- updating_features = false;
-
singleton = this;
}
diff --git a/editor/editor_feature_profile.h b/editor/editor_feature_profile.h
index 7ea40502a6..881f14638f 100644
--- a/editor/editor_feature_profile.h
+++ b/editor/editor_feature_profile.h
@@ -155,7 +155,7 @@ class EditorFeatureProfileManager : public AcceptDialog {
void _import_profiles(const Vector<String> &p_paths);
void _export_profile(const String &p_path);
- bool updating_features;
+ bool updating_features = false;
void _class_list_item_selected();
void _class_list_item_edited();
diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp
index 0fef4597be..31f2f24066 100644
--- a/editor/editor_file_dialog.cpp
+++ b/editor/editor_file_dialog.cpp
@@ -214,7 +214,7 @@ void EditorFileDialog::update_dir() {
if (dir_access->get_current_dir().is_network_share_path()) {
_update_drives(false);
drives->add_item(RTR("Network"));
- drives->set_item_disabled(drives->get_item_count() - 1, true);
+ drives->set_item_disabled(-1, true);
drives->select(drives->get_item_count() - 1);
} else {
drives->select(dir_access->get_current_drive());
@@ -314,8 +314,8 @@ void EditorFileDialog::_post_popup() {
recentd.remove_at(i--);
} else {
recent->add_item(name, folder);
- recent->set_item_metadata(recent->get_item_count() - 1, recentd[i]);
- recent->set_item_icon_modulate(recent->get_item_count() - 1, folder_color);
+ recent->set_item_metadata(-1, recentd[i]);
+ recent->set_item_icon_modulate(-1, folder_color);
}
}
EditorSettings::get_singleton()->set_recent_dirs(recentd);
@@ -800,9 +800,9 @@ void EditorFileDialog::update_file_list() {
item_list->add_item(dir_name);
if (display_mode == DISPLAY_THUMBNAILS) {
- item_list->set_item_icon(item_list->get_item_count() - 1, folder_thumbnail);
+ item_list->set_item_icon(-1, folder_thumbnail);
} else {
- item_list->set_item_icon(item_list->get_item_count() - 1, folder);
+ item_list->set_item_icon(-1, folder);
}
Dictionary d;
@@ -810,8 +810,8 @@ void EditorFileDialog::update_file_list() {
d["path"] = cdir.plus_file(dir_name);
d["dir"] = true;
- item_list->set_item_metadata(item_list->get_item_count() - 1, d);
- item_list->set_item_icon_modulate(item_list->get_item_count() - 1, folder_color);
+ item_list->set_item_metadata(-1, d);
+ item_list->set_item_icon_modulate(-1, folder_color);
dirs.pop_front();
}
@@ -858,10 +858,10 @@ void EditorFileDialog::update_file_list() {
if (get_icon_func) {
Ref<Texture2D> icon = get_icon_func(cdir.plus_file(files.front()->get()));
if (display_mode == DISPLAY_THUMBNAILS) {
- item_list->set_item_icon(item_list->get_item_count() - 1, file_thumbnail);
- item_list->set_item_tag_icon(item_list->get_item_count() - 1, icon);
+ item_list->set_item_icon(-1, file_thumbnail);
+ item_list->set_item_tag_icon(-1, icon);
} else {
- item_list->set_item_icon(item_list->get_item_count() - 1, icon);
+ item_list->set_item_icon(-1, icon);
}
}
@@ -870,7 +870,7 @@ void EditorFileDialog::update_file_list() {
d["dir"] = false;
String fullpath = cdir.plus_file(files.front()->get());
d["path"] = fullpath;
- item_list->set_item_metadata(item_list->get_item_count() - 1, d);
+ item_list->set_item_metadata(-1, d);
if (display_mode == DISPLAY_THUMBNAILS && previews_enabled) {
EditorResourcePreview::get_singleton()->queue_resource_preview(fullpath, this, "_thumbnail_result", fullpath);
@@ -1321,8 +1321,8 @@ void EditorFileDialog::_update_favorites() {
continue; // We don't handle favorite files here.
}
- favorites->set_item_metadata(favorites->get_item_count() - 1, favorited[i]);
- favorites->set_item_icon_modulate(favorites->get_item_count() - 1, folder_color);
+ favorites->set_item_metadata(-1, favorited[i]);
+ favorites->set_item_icon_modulate(-1, folder_color);
if (setthis) {
favorite->set_pressed(true);
@@ -1471,9 +1471,9 @@ void EditorFileDialog::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::INT, "access", PROPERTY_HINT_ENUM, "Resources,User data,File system"), "set_access", "get_access");
ADD_PROPERTY(PropertyInfo(Variant::INT, "display_mode", PROPERTY_HINT_ENUM, "Thumbnails,List"), "set_display_mode", "get_display_mode");
ADD_PROPERTY(PropertyInfo(Variant::INT, "file_mode", PROPERTY_HINT_ENUM, "Open one,Open many,Open folder,Open any,Save"), "set_file_mode", "get_file_mode");
- ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_dir", PROPERTY_HINT_DIR), "set_current_dir", "get_current_dir");
- ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_file", PROPERTY_HINT_FILE, "*"), "set_current_file", "get_current_file");
- ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_path"), "set_current_path", "get_current_path");
+ ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_dir", PROPERTY_HINT_DIR, "", PROPERTY_USAGE_NONE), "set_current_dir", "get_current_dir");
+ ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_file", PROPERTY_HINT_FILE, "*", PROPERTY_USAGE_NONE), "set_current_file", "get_current_file");
+ ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_path", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_current_path", "get_current_path");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "show_hidden_files"), "set_show_hidden_files", "is_showing_hidden_files");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "disable_overwrite_warning"), "set_disable_overwrite_warning", "is_overwrite_warning_disabled");
@@ -1557,7 +1557,6 @@ EditorFileDialog::EditorFileDialog() {
show_hidden_files = default_show_hidden_files;
display_mode = default_display_mode;
local_history_pos = 0;
- disable_overwrite_warning = false;
VBoxContainer *vbc = memnew(VBoxContainer);
add_child(vbc);
@@ -1814,15 +1813,12 @@ EditorFileDialog::EditorFileDialog() {
set_hide_on_ok(false);
vbox = vbc;
- invalidated = true;
if (register_func) {
register_func(this);
}
- previews_enabled = true;
preview_wheel_timeout = 0;
preview_wheel_index = 0;
- preview_waiting = false;
}
EditorFileDialog::~EditorFileDialog() {
diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h
index 65a4c9e544..a747255ce8 100644
--- a/editor/editor_file_dialog.h
+++ b/editor/editor_file_dialog.h
@@ -135,8 +135,8 @@ private:
Vector<String> filters;
- bool previews_enabled;
- bool preview_waiting;
+ bool previews_enabled = true;
+ bool preview_waiting = false;
int preview_wheel_index;
float preview_wheel_timeout;
@@ -145,8 +145,8 @@ private:
bool show_hidden_files;
DisplayMode display_mode;
- bool disable_overwrite_warning;
- bool invalidated;
+ bool disable_overwrite_warning = false;
+ bool invalidated = true;
void update_dir();
void update_file_name();
diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp
index 0c46cebec0..98ba3ae3d8 100644
--- a/editor/editor_file_system.cpp
+++ b/editor/editor_file_system.cpp
@@ -194,7 +194,6 @@ void EditorFileSystemDirectory::_bind_methods() {
EditorFileSystemDirectory::EditorFileSystemDirectory() {
modified_time = 0;
parent = nullptr;
- verified = false;
}
EditorFileSystemDirectory::~EditorFileSystemDirectory() {
@@ -1094,12 +1093,11 @@ void EditorFileSystem::_delete_internal_files(String p_file) {
if (FileAccess::exists(p_file + ".import")) {
List<String> paths;
ResourceFormatImporter::get_singleton()->get_internal_resource_path_list(p_file, &paths);
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
for (const String &E : paths) {
da->remove(E);
}
da->remove(p_file + ".import");
- memdelete(da);
}
}
@@ -2384,24 +2382,14 @@ EditorFileSystem::EditorFileSystem() {
filesystem = memnew(EditorFileSystemDirectory); //like, empty
filesystem->parent = nullptr;
- scanning = false;
- importing = false;
- use_threads = true;
new_filesystem = nullptr;
- abort_scan = false;
- scanning_changes = false;
- scanning_changes_done = false;
-
// This should probably also work on Unix and use the string it returns for FAT32 or exFAT
DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
using_fat32_or_exfat = (da->get_filesystem_type() == "FAT32" || da->get_filesystem_type() == "exFAT");
scan_total = 0;
update_script_classes_queued.clear();
- first_scan = true;
- scan_changes_pending = false;
- revalidate_import_files = false;
import_threads.init();
ResourceUID::get_singleton()->clear(); //will be updated on scan
ResourceSaver::set_get_resource_id_for_path(_resource_saver_get_resource_id_for_path);
diff --git a/editor/editor_file_system.h b/editor/editor_file_system.h
index 0c1bfbca47..0ec0094030 100644
--- a/editor/editor_file_system.h
+++ b/editor/editor_file_system.h
@@ -47,7 +47,7 @@ class EditorFileSystemDirectory : public Object {
String name;
uint64_t modified_time;
- bool verified; //used for checking changes
+ bool verified = false; //used for checking changes
EditorFileSystemDirectory *parent;
Vector<EditorFileSystemDirectory *> subdirs;
@@ -132,20 +132,20 @@ class EditorFileSystem : public Node {
EditorFileSystemDirectory::FileInfo *new_file = nullptr;
};
- bool use_threads;
+ bool use_threads = true;
Thread thread;
static void _thread_func(void *_userdata);
EditorFileSystemDirectory *new_filesystem;
- bool abort_scan;
- bool scanning;
- bool importing;
- bool first_scan;
- bool scan_changes_pending;
+ bool abort_scan = false;
+ bool scanning = false;
+ bool importing = false;
+ bool first_scan = true;
+ bool scan_changes_pending = false;
float scan_total;
String filesystem_settings_version_for_import;
- bool revalidate_import_files;
+ bool revalidate_import_files = false;
void _scan_filesystem();
@@ -197,8 +197,8 @@ class EditorFileSystem : public Node {
void _scan_new_dir(EditorFileSystemDirectory *p_dir, DirAccess *da, const ScanProgress &p_progress);
Thread thread_sources;
- bool scanning_changes;
- bool scanning_changes_done;
+ bool scanning_changes = false;
+ bool scanning_changes_done = false;
static void _thread_func_sources(void *_userdata);
diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp
index d80ee1d569..7b72e09bd7 100644
--- a/editor/editor_fonts.cpp
+++ b/editor/editor_fonts.cpp
@@ -64,8 +64,8 @@
m_name->add_data(FontTamilBold); \
m_name->add_data(FontTeluguBold); \
m_name->add_data(FontThaiBold); \
- m_name->add_data(FontJapanese); \
- m_name->add_data(FontFallback);
+ m_name->add_data(FontJapaneseBold); \
+ m_name->add_data(FontFallbackBold);
#define MAKE_DEFAULT_FONT(m_name, m_variations) \
Ref<Font> m_name; \
@@ -174,7 +174,7 @@ Ref<FontData> load_cached_internal_font(const uint8_t *p_data, size_t p_size, Te
}
void editor_register_fonts(Ref<Theme> p_theme) {
- DirAccess *dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
/* Custom font */
@@ -206,7 +206,8 @@ void editor_register_fonts(Ref<Theme> p_theme) {
break;
}
- int default_font_size = int(EDITOR_GET("interface/editor/main_font_size")) * EDSCALE;
+ const int default_font_size = int(EDITOR_GET("interface/editor/main_font_size")) * EDSCALE;
+ const float embolden_strength = 0.6;
String custom_font_path = EditorSettings::get_singleton()->get("interface/editor/main_font");
Ref<FontData> CustomFont;
@@ -226,6 +227,11 @@ void editor_register_fonts(Ref<Theme> p_theme) {
EditorSettings::get_singleton()->set_manually("interface/editor/main_font_bold", "");
}
+ if (CustomFont.is_valid() && !CustomFontBold.is_valid()) {
+ CustomFontBold = CustomFont->duplicate();
+ CustomFontBold->set_embolden(embolden_strength);
+ }
+
/* Custom source code font */
String custom_font_path_source = EditorSettings::get_singleton()->get("interface/editor/code_font");
@@ -236,8 +242,6 @@ void editor_register_fonts(Ref<Theme> p_theme) {
EditorSettings::get_singleton()->set_manually("interface/editor/code_font", "");
}
- memdelete(dir);
-
/* Noto Sans */
Ref<FontData> DefaultFont = load_cached_internal_font(_font_NotoSans_Regular, _font_NotoSans_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning);
@@ -270,6 +274,11 @@ void editor_register_fonts(Ref<Theme> p_theme) {
Ref<FontData> FontFallback = load_cached_internal_font(_font_DroidSansFallback, _font_DroidSansFallback_size, font_hinting, font_antialiased, true, font_subpixel_positioning);
Ref<FontData> FontJapanese = load_cached_internal_font(_font_DroidSansJapanese, _font_DroidSansJapanese_size, font_hinting, font_antialiased, true, font_subpixel_positioning);
+ Ref<FontData> FontFallbackBold = FontFallback->duplicate();
+ FontFallbackBold->set_embolden(embolden_strength);
+ Ref<FontData> FontJapaneseBold = FontJapanese->duplicate();
+ FontJapaneseBold->set_embolden(embolden_strength);
+
/* Hack */
Ref<FontData> dfmono = load_cached_internal_font(_font_JetBrainsMono_Regular, _font_JetBrainsMono_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning);
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index 39c8509148..622547f0a8 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -1897,8 +1897,6 @@ EditorHelp::EditorHelp() {
class_desc->set_selection_enabled(true);
- scroll_locked = false;
- select_locked = false;
class_desc->hide();
}
diff --git a/editor/editor_help.h b/editor/editor_help.h
index 10281a764c..b40d1709b6 100644
--- a/editor/editor_help.h
+++ b/editor/editor_help.h
@@ -98,7 +98,7 @@ class EditorHelp : public VBoxContainer {
};
- bool select_locked;
+ bool select_locked = false;
String prev_search;
@@ -144,7 +144,7 @@ class EditorHelp : public VBoxContainer {
void _help_callback(const String &p_topic);
void _add_text(const String &p_bbcode);
- bool scroll_locked;
+ bool scroll_locked = false;
//void _button_pressed(int p_idx);
void _add_type(const String &p_type, const String &p_enum = String());
diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp
index dd4969cdd2..8e03c55712 100644
--- a/editor/editor_help_search.cpp
+++ b/editor/editor_help_search.cpp
@@ -180,8 +180,6 @@ void EditorHelpSearch::popup_dialog(const String &p_term) {
}
EditorHelpSearch::EditorHelpSearch() {
- old_search = false;
-
set_hide_on_ok(false);
set_title(TTR("Search Help"));
@@ -536,7 +534,7 @@ TreeItem *EditorHelpSearch::Runner::_create_class_item(TreeItem *p_parent, const
} else if (ClassDB::class_exists(p_doc->name) && ClassDB::is_parent_class(p_doc->name, "Object")) {
icon = ui_service->get_theme_icon(SNAME("Object"), SNAME("EditorIcons"));
}
- String tooltip = p_doc->brief_description.strip_edges();
+ String tooltip = DTR(p_doc->brief_description.strip_edges());
TreeItem *item = results_tree->create_item(p_parent);
item->set_icon(0, icon);
diff --git a/editor/editor_help_search.h b/editor/editor_help_search.h
index 7d918d0c68..bf69fe1693 100644
--- a/editor/editor_help_search.h
+++ b/editor/editor_help_search.h
@@ -60,7 +60,7 @@ class EditorHelpSearch : public ConfirmationDialog {
Button *hierarchy_button;
OptionButton *filter_combo;
Tree *results_tree;
- bool old_search;
+ bool old_search = false;
String old_term;
class Runner;
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index 995ba47894..9efd942a51 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -36,6 +36,7 @@
#include "editor/doc_tools.h"
#include "editor/editor_feature_profile.h"
#include "editor/editor_node.h"
+#include "editor/editor_property_name_processor.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "multi_node_edit.h"
@@ -99,7 +100,7 @@ void EditorProperty::emit_changed(const StringName &p_property, const Variant &p
const Variant *argptrs[4] = { &args[0], &args[1], &args[2], &args[3] };
cache[p_property] = p_value;
- emit_signal(SNAME("property_changed"), (const Variant **)argptrs, 4);
+ emit_signalp(SNAME("property_changed"), (const Variant **)argptrs, 4);
}
void EditorProperty::_notification(int p_what) {
@@ -881,7 +882,7 @@ void EditorProperty::menu_option(int p_option) {
emit_changed(property, InspectorDock::get_inspector_singleton()->get_property_clipboard());
} break;
case MENU_COPY_PROPERTY_PATH: {
- DisplayServer::get_singleton()->clipboard_set(property);
+ DisplayServer::get_singleton()->clipboard_set(property_path);
} break;
case MENU_PIN_VALUE: {
emit_signal(SNAME("property_pinned"), property, !pinned);
@@ -947,31 +948,13 @@ void EditorProperty::_bind_methods() {
}
EditorProperty::EditorProperty() {
- draw_top_bg = true;
object = nullptr;
split_ratio = 0.5;
- selectable = true;
text_size = 0;
- read_only = false;
- checkable = false;
- checked = false;
- draw_warning = false;
- keying = false;
- deletable = false;
- keying_hover = false;
- revert_hover = false;
- check_hover = false;
- can_revert = false;
- can_pin = false;
- pin_hidden = false;
- pinned = false;
- use_folding = false;
property_usage = 0;
- selected = false;
selected_focusable = -1;
label_reference = nullptr;
bottom_editor = nullptr;
- delete_hover = false;
menu = nullptr;
set_process_unhandled_key_input(true);
}
@@ -2331,6 +2314,7 @@ void EditorInspector::_parse_added_editors(VBoxContainer *current_vbox, Ref<Edit
if (F.properties.size() == 1) {
//since it's one, associate:
ep->property = F.properties[0];
+ ep->property_path = property_prefix + F.properties[0];
ep->property_usage = 0;
}
@@ -2680,10 +2664,10 @@ void EditorInspector::update_tree() {
if (dot != -1) {
String ov = property_label_string.substr(dot);
property_label_string = property_label_string.substr(0, dot);
- property_label_string = property_label_string.capitalize();
+ property_label_string = EditorPropertyNameProcessor::get_singleton()->process_name(property_label_string);
property_label_string += ov;
} else {
- property_label_string = property_label_string.capitalize();
+ property_label_string = EditorPropertyNameProcessor::get_singleton()->process_name(property_label_string);
}
}
@@ -2734,13 +2718,15 @@ void EditorInspector::update_tree() {
current_vbox->add_child(section);
sections.push_back(section);
+ String label = component;
if (capitalize_paths) {
- component = component.capitalize();
+ label = EditorPropertyNameProcessor::get_singleton()->process_name(label);
}
Color c = sscolor;
c.a /= level;
- section->setup(acc_path, component, object, c, use_folding, section_depth);
+ section->setup(acc_path, label, object, c, use_folding, section_depth);
+ section->set_tooltip(EditorPropertyNameProcessor::get_singleton()->make_tooltip_for_name(component));
// Add editors at the start of a group.
for (Ref<EditorInspectorPlugin> &ped : valid_plugins) {
@@ -2772,7 +2758,7 @@ void EditorInspector::update_tree() {
editor_inspector_array = memnew(EditorInspectorArray);
String array_label = path.contains("/") ? path.substr(path.rfind("/") + 1) : path;
- array_label = property_label_string.capitalize();
+ array_label = EditorPropertyNameProcessor::get_singleton()->process_name(property_label_string);
int page = per_array_page.has(array_element_prefix) ? per_array_page[array_element_prefix] : 0;
editor_inspector_array->setup_with_move_element_function(object, array_label, array_element_prefix, page, c, use_folding);
editor_inspector_array->connect("page_change_request", callable_mp(this, &EditorInspector::_page_change_request), varray(array_element_prefix));
@@ -2889,6 +2875,7 @@ void EditorInspector::update_tree() {
if (F.properties.size() == 1) {
//since it's one, associate:
ep->property = F.properties[0];
+ ep->property_path = property_prefix + F.properties[0];
ep->property_usage = p.usage;
//and set label?
}
@@ -3314,7 +3301,7 @@ void EditorInspector::_property_keyed(const String &p_path, 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] = { 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);
+ emit_signalp(SNAME("property_keyed"), argp, 3);
}
void EditorInspector::_property_deleted(const String &p_path) {
@@ -3333,7 +3320,7 @@ void EditorInspector::_property_keyed_with_value(const String &p_path, const Var
// 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);
+ emit_signalp(SNAME("property_keyed"), argp, 3);
}
void EditorInspector::_property_checked(const String &p_path, bool p_checked) {
@@ -3510,7 +3497,9 @@ void EditorInspector::_notification(int p_what) {
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
_update_inspector_bg();
- update_tree();
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/inspector")) {
+ update_tree();
+ }
} break;
}
}
@@ -3670,25 +3659,11 @@ EditorInspector::EditorInspector() {
add_child(main_vbox);
set_horizontal_scroll_mode(SCROLL_MODE_DISABLED);
- wide_editors = false;
- show_categories = false;
- hide_script = true;
- use_doc_hints = false;
- capitalize_paths = true;
- use_filter = false;
- autoclear = false;
changing = 0;
- use_folding = false;
- update_all_pending = false;
- update_tree_pending = false;
- read_only = false;
search_box = nullptr;
- keying = false;
_prop_edited = "property_edited";
set_process(false);
property_focusable = -1;
- sub_inspector = false;
- deletable_properties = false;
property_clipboard = Variant();
get_v_scroll_bar()->connect("value_changed", callable_mp(this, &EditorInspector::_vscroll_changed));
diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h
index 43f71740e3..3c482a07e7 100644
--- a/editor/editor_inspector.h
+++ b/editor/editor_inspector.h
@@ -68,15 +68,16 @@ private:
friend class EditorInspector;
Object *object;
StringName property;
+ String property_path;
int property_usage;
- bool read_only;
- bool checkable;
- bool checked;
- bool draw_warning;
- bool keying;
- bool deletable;
+ bool read_only = false;
+ bool checkable = false;
+ bool checked = false;
+ bool draw_warning = false;
+ bool keying = false;
+ bool deletable = false;
Rect2 right_child_rect;
Rect2 bottom_child_rect;
@@ -90,19 +91,19 @@ private:
Rect2 delete_rect;
bool delete_hover = false;
- bool can_revert;
- bool can_pin;
- bool pin_hidden;
- bool pinned;
+ bool can_revert = false;
+ bool can_pin = false;
+ bool pin_hidden = false;
+ bool pinned = false;
- bool use_folding;
- bool draw_top_bg;
+ bool use_folding = false;
+ bool draw_top_bg = true;
void _update_popup();
void _focusable_focused(int p_index);
- bool selectable;
- bool selected;
+ bool selectable = true;
+ bool selected = false;
int selected_focusable;
float split_ratio;
@@ -442,23 +443,23 @@ class EditorInspector : public ScrollContainer {
//
LineEdit *search_box;
- bool show_categories;
- bool hide_script;
- bool use_doc_hints;
- bool capitalize_paths;
- bool use_filter;
- bool autoclear;
- bool use_folding;
+ bool show_categories = false;
+ bool hide_script = true;
+ bool use_doc_hints = false;
+ bool capitalize_paths = true;
+ bool use_filter = false;
+ bool autoclear = false;
+ bool use_folding = false;
int changing;
- bool update_all_pending;
- bool read_only;
- bool keying;
- bool sub_inspector;
- bool wide_editors;
- bool deletable_properties;
+ bool update_all_pending = false;
+ bool read_only = false;
+ bool keying = false;
+ bool sub_inspector = false;
+ bool wide_editors = false;
+ bool deletable_properties = false;
float refresh_countdown;
- bool update_tree_pending;
+ bool update_tree_pending = false;
StringName _prop_edited;
StringName property_selected;
int property_focusable;
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index ef744d8ece..7251530fdc 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -90,6 +90,7 @@
#include "editor/editor_paths.h"
#include "editor/editor_plugin.h"
#include "editor/editor_properties.h"
+#include "editor/editor_property_name_processor.h"
#include "editor/editor_resource_picker.h"
#include "editor/editor_resource_preview.h"
#include "editor/editor_run.h"
@@ -700,7 +701,7 @@ void EditorNode::_notification(int p_what) {
} break;
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
- scene_tabs->set_tab_close_display_policy((bool(EDITOR_GET("interface/scene_tabs/always_show_close_button")) ? TabBar::CLOSE_BUTTON_SHOW_ALWAYS : TabBar::CLOSE_BUTTON_SHOW_ACTIVE_ONLY));
+ scene_tabs->set_tab_close_display_policy((TabBar::CloseButtonDisplayPolicy)EDITOR_GET("interface/scene_tabs/display_close_button").operator int());
bool theme_changed =
EditorSettings::get_singleton()->check_changed_settings_in_group("interface/theme") ||
@@ -725,14 +726,10 @@ void EditorNode::_notification(int p_what) {
help_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles")));
}
- if (EDITOR_GET("interface/scene_tabs/resize_if_many_tabs")) {
- scene_tabs->set_min_width(int(EDITOR_GET("interface/scene_tabs/minimum_width")) * EDSCALE);
- } else {
- scene_tabs->set_min_width(0);
- }
+ scene_tabs->set_max_tab_width(int(EDITOR_GET("interface/scene_tabs/maximum_width")) * EDSCALE);
_update_scene_tabs();
- recent_scenes->set_as_minsize();
+ recent_scenes->reset_size();
// debugger area
if (EditorDebuggerNode::get_singleton()->is_visible()) {
@@ -807,10 +804,6 @@ void EditorNode::_notification(int p_what) {
_update_update_spinner();
} break;
-
- case Control::NOTIFICATION_RESIZED: {
- _update_scene_tabs();
- } break;
}
}
@@ -3791,7 +3784,7 @@ void EditorNode::_update_recent_scenes() {
recent_scenes->add_separator();
recent_scenes->add_shortcut(ED_SHORTCUT("editor/clear_recent", TTR("Clear Recent Scenes")));
- recent_scenes->set_as_minsize();
+ recent_scenes->reset_size();
}
void EditorNode::_quick_opened() {
@@ -3866,18 +3859,18 @@ void EditorNode::register_editor_types() {
GDREGISTER_CLASS(EditorScript);
GDREGISTER_CLASS(EditorSelection);
GDREGISTER_CLASS(EditorFileDialog);
- GDREGISTER_VIRTUAL_CLASS(EditorSettings);
+ GDREGISTER_ABSTRACT_CLASS(EditorSettings);
GDREGISTER_CLASS(EditorNode3DGizmo);
GDREGISTER_CLASS(EditorNode3DGizmoPlugin);
- GDREGISTER_VIRTUAL_CLASS(EditorResourcePreview);
+ GDREGISTER_ABSTRACT_CLASS(EditorResourcePreview);
GDREGISTER_CLASS(EditorResourcePreviewGenerator);
- GDREGISTER_VIRTUAL_CLASS(EditorFileSystem);
+ GDREGISTER_ABSTRACT_CLASS(EditorFileSystem);
GDREGISTER_CLASS(EditorFileSystemDirectory);
GDREGISTER_CLASS(EditorVCSInterface);
- GDREGISTER_VIRTUAL_CLASS(ScriptEditor);
- GDREGISTER_VIRTUAL_CLASS(ScriptEditorBase);
+ GDREGISTER_ABSTRACT_CLASS(ScriptEditor);
+ GDREGISTER_ABSTRACT_CLASS(ScriptEditorBase);
GDREGISTER_CLASS(EditorSyntaxHighlighter);
- GDREGISTER_VIRTUAL_CLASS(EditorInterface);
+ GDREGISTER_ABSTRACT_CLASS(EditorInterface);
GDREGISTER_CLASS(EditorExportPlugin);
GDREGISTER_CLASS(EditorResourceConversionPlugin);
GDREGISTER_CLASS(EditorSceneFormatImporter);
@@ -3892,7 +3885,7 @@ void EditorNode::register_editor_types() {
GDREGISTER_CLASS(EditorResourcePicker);
GDREGISTER_CLASS(EditorScriptPicker);
- GDREGISTER_VIRTUAL_CLASS(FileSystemDock);
+ GDREGISTER_ABSTRACT_CLASS(FileSystemDock);
// FIXME: Is this stuff obsolete, or should it be ported to new APIs?
GDREGISTER_CLASS(EditorScenePostImport);
@@ -5432,7 +5425,7 @@ void EditorNode::remove_tool_menu_item(const String &p_name) {
memdelete(n);
}
tool_menu->remove_item(i);
- tool_menu->set_as_minsize();
+ tool_menu->reset_size();
return;
}
}
@@ -5496,7 +5489,7 @@ void EditorNode::_add_dropped_files_recursive(const Vector<String> &p_files, Str
}
void EditorNode::_file_access_close_error_notify(const String &p_str) {
- add_io_error("Unable to write to file '" + p_str + "', file in use, locked or lacking permissions.");
+ add_io_error(vformat(TTR("Unable to write to file '%s', file in use, locked or lacking permissions."), p_str));
}
void EditorNode::reload_scene(const String &p_path) {
@@ -5811,6 +5804,9 @@ void EditorNode::notify_settings_changed() {
}
EditorNode::EditorNode() {
+ EditorPropertyNameProcessor *epnp = memnew(EditorPropertyNameProcessor);
+ add_child(epnp);
+
Input::get_singleton()->set_use_accumulated_input(true);
Resource::_get_local_scene_func = _resource_get_edited_scene;
@@ -5845,16 +5841,7 @@ EditorNode::EditorNode() {
}
singleton = this;
- exiting = false;
- dimmed = false;
last_checked_version = 0;
- changing_scene = false;
- _initializing_addons = false;
- docks_visible = true;
- restoring_scenes = false;
- cmdline_export_mode = false;
- scene_distraction = false;
- script_distraction = false;
TranslationServer::get_singleton()->set_enabled(false);
// load settings
@@ -6029,19 +6016,11 @@ EditorNode::EditorNode() {
ClassDB::set_class_enabled("RootMotionView", true);
// defs here, use EDITOR_GET in logic
- EDITOR_DEF_RST("interface/scene_tabs/always_show_close_button", false);
- EDITOR_DEF_RST("interface/scene_tabs/resize_if_many_tabs", true);
- EDITOR_DEF_RST("interface/scene_tabs/minimum_width", 50);
- EDITOR_DEF("run/output/always_clear_output_on_play", true);
- EDITOR_DEF("run/output/always_open_output_on_play", true);
- EDITOR_DEF("run/output/always_close_output_on_stop", true);
- EDITOR_DEF("run/auto_save/save_before_running", true);
EDITOR_DEF("interface/editor/save_on_focus_loss", false);
- EDITOR_DEF_RST("interface/editor/save_each_scene_on_quit", true);
EDITOR_DEF("interface/editor/show_update_spinner", false);
EDITOR_DEF("interface/editor/update_continuously", false);
+ EDITOR_DEF("interface/editor/translate_properties", true);
EDITOR_DEF_RST("interface/scene_tabs/restore_scenes_on_load", true);
- EDITOR_DEF_RST("interface/scene_tabs/show_thumbnail_on_hover", true);
EDITOR_DEF_RST("interface/inspector/capitalize_properties", true);
EDITOR_DEF_RST("interface/inspector/default_float_step", 0.001);
EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::FLOAT, "interface/inspector/default_float_step", PROPERTY_HINT_RANGE, "0,1,0"));
@@ -6055,7 +6034,6 @@ EditorNode::EditorNode() {
EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_color_picker_mode", PROPERTY_HINT_ENUM, "RGB,HSV,RAW", PROPERTY_USAGE_DEFAULT));
EDITOR_DEF("interface/inspector/default_color_picker_shape", (int32_t)ColorPicker::SHAPE_VHS_CIRCLE);
EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_color_picker_shape", PROPERTY_HINT_ENUM, "HSV Rectangle,HSV Rectangle Wheel,VHS Circle", PROPERTY_USAGE_DEFAULT));
- EDITOR_DEF("run/auto_save/save_before_running", true);
ED_SHORTCUT("canvas_item_editor/pan_view", TTR("Pan View"), Key::SPACE);
@@ -6211,7 +6189,7 @@ EditorNode::EditorNode() {
dock_vb->add_child(dock_float);
- dock_select_popup->set_as_minsize();
+ dock_select_popup->reset_size();
dock_select_rect_over = -1;
dock_popup_selected = -1;
for (int i = 0; i < DOCK_SLOT_MAX; i++) {
@@ -6263,8 +6241,8 @@ EditorNode::EditorNode() {
scene_tabs->set_select_with_rmb(true);
scene_tabs->add_tab("unsaved");
scene_tabs->set_tab_alignment(TabBar::ALIGNMENT_LEFT);
- scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/scene_tabs/always_show_close_button", false)) ? TabBar::CLOSE_BUTTON_SHOW_ALWAYS : TabBar::CLOSE_BUTTON_SHOW_ACTIVE_ONLY));
- scene_tabs->set_min_width(int(EDITOR_DEF("interface/scene_tabs/minimum_width", 50)) * EDSCALE);
+ scene_tabs->set_tab_close_display_policy((TabBar::CloseButtonDisplayPolicy)EDITOR_GET("interface/scene_tabs/display_close_button").operator int());
+ scene_tabs->set_max_tab_width(int(EDITOR_GET("interface/scene_tabs/maximum_width")) * EDSCALE);
scene_tabs->set_drag_to_rearrange_enabled(true);
scene_tabs->connect("tab_changed", callable_mp(this, &EditorNode::_scene_tab_changed));
scene_tabs->connect("tab_button_pressed", callable_mp(this, &EditorNode::_scene_tab_script_edited));
@@ -6313,7 +6291,7 @@ EditorNode::EditorNode() {
scene_root_parent->set_v_size_flags(Control::SIZE_EXPAND_FILL);
scene_root = memnew(SubViewport);
- scene_root->set_embed_subwindows_hint(true);
+ scene_root->set_embedding_subwindows(true);
scene_root->set_disable_3d(true);
scene_root->set_disable_input(true);
@@ -6528,7 +6506,7 @@ EditorNode::EditorNode() {
ED_SHORTCUT_OVERRIDE("editor/take_screenshot", "macos", KeyModifierMask::CMD | Key::F12);
p->add_shortcut(ED_GET_SHORTCUT("editor/take_screenshot"), EDITOR_SCREENSHOT);
- p->set_item_tooltip(p->get_item_count() - 1, TTR("Screenshots are stored in the Editor Data/Settings Folder."));
+ p->set_item_tooltip(-1, TTR("Screenshots are stored in the Editor Data/Settings Folder."));
ED_SHORTCUT_AND_COMMAND("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KeyModifierMask::SHIFT | Key::F11);
ED_SHORTCUT_OVERRIDE("editor/fullscreen_mode", "macos", KeyModifierMask::CMD | KeyModifierMask::CTRL | Key::F);
@@ -7124,9 +7102,6 @@ EditorNode::EditorNode() {
current = nullptr;
saving_resource = Ref<Resource>();
- reference_resource_mem = true;
- save_external_resources_mem = true;
-
set_process(true);
open_imported = memnew(ConfirmationDialog);
@@ -7137,7 +7112,6 @@ EditorNode::EditorNode() {
gui_base->add_child(open_imported);
saved_version = 1;
- unsaved_cache = true;
_last_instantiated_scene = nullptr;
quick_open = memnew(EditorQuickOpen);
@@ -7151,10 +7125,7 @@ EditorNode::EditorNode() {
_update_recent_scenes();
editor_data.restore_editor_global_states();
- convert_old = false;
- opening_prev = false;
set_process_unhandled_input(true);
- _playing_edited = false;
load_errors = memnew(RichTextLabel);
load_error_dialog = memnew(AcceptDialog);
@@ -7195,8 +7166,6 @@ EditorNode::EditorNode() {
FileAccess::set_file_close_fail_notify_callback(_file_access_close_error_notify);
- waiting_for_first_scan = true;
-
print_handler.printfunc = _print_handler;
print_handler.userdata = this;
add_print_handler(&print_handler);
diff --git a/editor/editor_node.h b/editor/editor_node.h
index c05e6cd281..0b6dbaec49 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -263,8 +263,8 @@ private:
TextureRect *tab_preview;
int tab_closing;
- bool exiting;
- bool dimmed;
+ bool exiting = false;
+ bool dimmed = false;
int old_split_ofs;
VSplitContainer *top_split;
@@ -380,15 +380,15 @@ private:
Button *dock_tab_move_right;
int dock_popup_selected;
Timer *dock_drag_timer;
- bool docks_visible;
+ bool docks_visible = true;
HBoxContainer *tabbar_container;
Button *distraction_free;
Button *scene_tab_add;
Control *scene_tab_add_ph;
- bool scene_distraction;
- bool script_distraction;
+ bool scene_distraction = false;
+ bool script_distraction = false;
String _tmp_import_path;
@@ -397,18 +397,15 @@ private:
Object *current;
Ref<Resource> saving_resource;
- bool _playing_edited;
+ bool _playing_edited = false;
String run_custom_filename;
- bool reference_resource_mem;
- bool save_external_resources_mem;
+ bool reference_resource_mem = true;
uint64_t saved_version;
uint64_t last_checked_version;
- bool unsaved_cache;
+ bool unsaved_cache = true;
String open_navigate;
- bool changing_scene;
- bool waiting_for_first_scan;
-
- bool waiting_for_sources_changed;
+ bool changing_scene = false;
+ bool waiting_for_first_scan = true;
uint64_t update_spinner_step_msec;
uint64_t update_spinner_step_frame;
@@ -457,7 +454,7 @@ private:
String external_file;
List<String> previous_scenes;
- bool opening_prev;
+ bool opening_prev = false;
void _dialog_action(String p_file);
@@ -534,7 +531,7 @@ private:
void _exit_editor(int p_exit_code);
- bool convert_old;
+ bool convert_old = false;
virtual void unhandled_input(const Ref<InputEvent> &p_event) override;
@@ -551,7 +548,7 @@ private:
Map<String, Ref<Texture2D>> icon_type_cache;
void _build_icon_type_cache();
- bool _initializing_addons;
+ bool _initializing_addons = false;
Map<String, EditorPlugin *> plugin_addons;
static Ref<Texture2D> _file_dialog_get_icon(const String &p_path);
@@ -587,7 +584,7 @@ private:
bool pack_only = false;
} export_defer;
- bool cmdline_export_mode;
+ bool cmdline_export_mode = false;
static EditorNode *singleton;
@@ -627,7 +624,7 @@ private:
void _update_dock_slots_visibility();
void _dock_tab_changed(int p_tab);
- bool restoring_scenes;
+ bool restoring_scenes = false;
void _save_open_scenes_to_config(Ref<ConfigFile> p_layout, const String &p_section);
void _load_open_scenes_from_config(Ref<ConfigFile> p_layout, const String &p_section);
diff --git a/editor/editor_plugin_settings.cpp b/editor/editor_plugin_settings.cpp
index 401414ae50..b6f48c7536 100644
--- a/editor/editor_plugin_settings.cpp
+++ b/editor/editor_plugin_settings.cpp
@@ -240,6 +240,4 @@ EditorPluginSettings::EditorPluginSettings() {
mc->set_h_size_flags(SIZE_EXPAND_FILL);
add_child(mc);
-
- updating = false;
}
diff --git a/editor/editor_plugin_settings.h b/editor/editor_plugin_settings.h
index 4648d105f7..c239b735de 100644
--- a/editor/editor_plugin_settings.h
+++ b/editor/editor_plugin_settings.h
@@ -48,7 +48,7 @@ class EditorPluginSettings : public VBoxContainer {
Button *create_plugin;
Button *update_list;
Tree *plugin_list;
- bool updating;
+ bool updating = false;
void _plugin_activity_changed();
void _create_clicked();
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index e0ef592ce7..b495d29911 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -110,9 +110,6 @@ EditorPropertyText::EditorPropertyText() {
add_focusable(text);
text->connect("text_changed", callable_mp(this, &EditorPropertyText::_text_changed));
text->connect("text_submitted", callable_mp(this, &EditorPropertyText::_text_submitted));
-
- string_name = false;
- updating = false;
}
///////////////////// MULTILINE TEXT /////////////////////////
@@ -500,9 +497,6 @@ EditorPropertyPath::EditorPropertyPath() {
add_focusable(path);
dialog = nullptr;
path_edit->connect("pressed", callable_mp(this, &EditorPropertyPath::_path_pressed));
- folder = false;
- global = false;
- save_mode = false;
}
///////////////////// CLASS NAME /////////////////////////
@@ -1185,7 +1179,7 @@ void EditorPropertyLayers::_button_pressed() {
}
Rect2 gp = button->get_screen_rect();
- layers->set_as_minsize();
+ layers->reset_size();
Vector2 popup_pos = gp.position - Vector2(layers->get_contents_minimum_size().x, 0);
layers->set_position(popup_pos);
layers->popup();
@@ -1278,7 +1272,6 @@ EditorPropertyInteger::EditorPropertyInteger() {
add_child(spin);
add_focusable(spin);
spin->connect("value_changed", callable_mp(this, &EditorPropertyInteger::_value_changed));
- setting = false;
}
///////////////////// OBJECT ID /////////////////////////
@@ -1587,10 +1580,6 @@ EditorPropertyEasing::EditorPropertyEasing() {
spin->get_line_edit()->connect("focus_exited", callable_mp(this, &EditorPropertyEasing::_spin_focus_exited));
spin->hide();
add_child(spin);
-
- dragging = false;
- flip = false;
- full = false;
}
///////////////////// VECTOR2 /////////////////////////
@@ -1680,7 +1669,6 @@ EditorPropertyVector2::EditorPropertyVector2(bool p_force_wide) {
if (!horizontal) {
set_label_reference(spin[0]); //show text and buttons around this
}
- setting = false;
}
///////////////////// RECT2 /////////////////////////
@@ -1784,7 +1772,6 @@ EditorPropertyRect2::EditorPropertyRect2(bool p_force_wide) {
if (!horizontal) {
set_label_reference(spin[0]); //show text and buttons around this
}
- setting = false;
}
///////////////////// VECTOR3 /////////////////////////
@@ -1993,7 +1980,6 @@ EditorPropertyVector2i::EditorPropertyVector2i(bool p_force_wide) {
if (!horizontal) {
set_label_reference(spin[0]); //show text and buttons around this
}
- setting = false;
}
///////////////////// RECT2i /////////////////////////
@@ -2097,7 +2083,6 @@ EditorPropertyRect2i::EditorPropertyRect2i(bool p_force_wide) {
if (!horizontal) {
set_label_reference(spin[0]); //show text and buttons around this
}
- setting = false;
}
///////////////////// VECTOR3i /////////////////////////
@@ -2188,7 +2173,6 @@ EditorPropertyVector3i::EditorPropertyVector3i(bool p_force_wide) {
if (!horizontal) {
set_label_reference(spin[0]); //show text and buttons around this
}
- setting = false;
}
///////////////////// PLANE /////////////////////////
@@ -2282,7 +2266,6 @@ EditorPropertyPlane::EditorPropertyPlane(bool p_force_wide) {
if (!horizontal) {
set_label_reference(spin[0]); //show text and buttons around this
}
- setting = false;
}
///////////////////// QUATERNION /////////////////////////
@@ -2373,7 +2356,6 @@ EditorPropertyQuaternion::EditorPropertyQuaternion() {
if (!horizontal) {
set_label_reference(spin[0]); //show text and buttons around this
}
- setting = false;
}
///////////////////// AABB /////////////////////////
@@ -2457,7 +2439,6 @@ EditorPropertyAABB::EditorPropertyAABB() {
spin[i]->connect("value_changed", callable_mp(this, &EditorPropertyAABB::_value_changed), varray(desc[i]));
}
set_bottom_editor(g);
- setting = false;
}
///////////////////// TRANSFORM2D /////////////////////////
@@ -2547,7 +2528,6 @@ EditorPropertyTransform2D::EditorPropertyTransform2D(bool p_include_origin) {
spin[i]->connect("value_changed", callable_mp(this, &EditorPropertyTransform2D::_value_changed), varray(desc[i]));
}
set_bottom_editor(g);
- setting = false;
}
///////////////////// BASIS /////////////////////////
@@ -2636,7 +2616,6 @@ EditorPropertyBasis::EditorPropertyBasis() {
spin[i]->connect("value_changed", callable_mp(this, &EditorPropertyBasis::_value_changed), varray(desc[i]));
}
set_bottom_editor(g);
- setting = false;
}
///////////////////// TRANSFORM /////////////////////////
@@ -2733,7 +2712,6 @@ EditorPropertyTransform3D::EditorPropertyTransform3D() {
spin[i]->connect("value_changed", callable_mp(this, &EditorPropertyTransform3D::_value_changed), varray(desc[i]));
}
set_bottom_editor(g);
- setting = false;
}
////////////// COLOR PICKER //////////////////////
@@ -2969,7 +2947,6 @@ EditorPropertyNodePath::EditorPropertyNodePath() {
clear->set_flat(true);
clear->connect("pressed", callable_mp(this, &EditorPropertyNodePath::_node_clear));
hbc->add_child(clear);
- use_path_from_scene_root = false;
scene_tree = nullptr; //do not allocate unnecessarily
}
@@ -3059,7 +3036,7 @@ void EditorPropertyResource::_sub_inspector_property_keyed(const String &p_prope
// 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);
+ emit_signalp(SNAME("property_keyed_with_value"), argp, 3);
}
void EditorPropertyResource::_sub_inspector_resource_selected(const RES &p_resource, const String &p_property) {
@@ -3738,8 +3715,13 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_
} break;
case Variant::DICTIONARY: {
- EditorPropertyDictionary *editor = memnew(EditorPropertyDictionary);
- return editor;
+ if (p_hint == PROPERTY_HINT_LOCALIZABLE_STRING) {
+ EditorPropertyLocalizableString *editor = memnew(EditorPropertyLocalizableString);
+ return editor;
+ } else {
+ EditorPropertyDictionary *editor = memnew(EditorPropertyDictionary);
+ return editor;
+ }
} break;
case Variant::ARRAY: {
EditorPropertyArray *editor = memnew(EditorPropertyArray);
diff --git a/editor/editor_properties.h b/editor/editor_properties.h
index 9a16a78ff8..c21e0e0b4d 100644
--- a/editor/editor_properties.h
+++ b/editor/editor_properties.h
@@ -54,8 +54,8 @@ class EditorPropertyText : public EditorProperty {
GDCLASS(EditorPropertyText, EditorProperty);
LineEdit *text;
- bool updating;
- bool string_name;
+ bool updating = false;
+ bool string_name = false;
void _text_changed(const String &p_string);
void _text_submitted(const String &p_string);
@@ -131,9 +131,9 @@ public:
class EditorPropertyPath : public EditorProperty {
GDCLASS(EditorPropertyPath, EditorProperty);
Vector<String> extensions;
- bool folder;
- bool global;
- bool save_mode;
+ bool folder = false;
+ bool global = false;
+ bool save_mode = false;
EditorFileDialog *dialog;
LineEdit *path;
Button *path_edit;
@@ -359,7 +359,7 @@ public:
class EditorPropertyInteger : public EditorProperty {
GDCLASS(EditorPropertyInteger, EditorProperty);
EditorSpinSlider *spin;
- bool setting;
+ bool setting = false;
void _value_changed(int64_t p_val);
protected:
@@ -410,11 +410,11 @@ class EditorPropertyEasing : public EditorProperty {
Control *easing_draw;
PopupMenu *preset;
EditorSpinSlider *spin;
- bool setting;
+ bool setting = false;
- bool dragging;
- bool full;
- bool flip;
+ bool dragging = false;
+ bool full = false;
+ bool flip = false;
enum {
EASING_ZERO,
@@ -450,7 +450,7 @@ public:
class EditorPropertyVector2 : public EditorProperty {
GDCLASS(EditorPropertyVector2, EditorProperty);
EditorSpinSlider *spin[2];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -467,7 +467,7 @@ public:
class EditorPropertyRect2 : public EditorProperty {
GDCLASS(EditorPropertyRect2, EditorProperty);
EditorSpinSlider *spin[4];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -504,7 +504,7 @@ public:
class EditorPropertyVector2i : public EditorProperty {
GDCLASS(EditorPropertyVector2i, EditorProperty);
EditorSpinSlider *spin[2];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -521,7 +521,7 @@ public:
class EditorPropertyRect2i : public EditorProperty {
GDCLASS(EditorPropertyRect2i, EditorProperty);
EditorSpinSlider *spin[4];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -538,7 +538,7 @@ public:
class EditorPropertyVector3i : public EditorProperty {
GDCLASS(EditorPropertyVector3i, EditorProperty);
EditorSpinSlider *spin[3];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -555,7 +555,7 @@ public:
class EditorPropertyPlane : public EditorProperty {
GDCLASS(EditorPropertyPlane, EditorProperty);
EditorSpinSlider *spin[4];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -572,7 +572,7 @@ public:
class EditorPropertyQuaternion : public EditorProperty {
GDCLASS(EditorPropertyQuaternion, EditorProperty);
EditorSpinSlider *spin[4];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -589,7 +589,7 @@ public:
class EditorPropertyAABB : public EditorProperty {
GDCLASS(EditorPropertyAABB, EditorProperty);
EditorSpinSlider *spin[6];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -606,7 +606,7 @@ public:
class EditorPropertyTransform2D : public EditorProperty {
GDCLASS(EditorPropertyTransform2D, EditorProperty);
EditorSpinSlider *spin[6];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -623,7 +623,7 @@ public:
class EditorPropertyBasis : public EditorProperty {
GDCLASS(EditorPropertyBasis, EditorProperty);
EditorSpinSlider *spin[9];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -640,7 +640,7 @@ public:
class EditorPropertyTransform3D : public EditorProperty {
GDCLASS(EditorPropertyTransform3D, EditorProperty);
EditorSpinSlider *spin[12];
- bool setting;
+ bool setting = false;
void _value_changed(double p_val, const String &p_name);
protected:
@@ -681,7 +681,7 @@ class EditorPropertyNodePath : public EditorProperty {
Button *clear;
SceneTreeDialog *scene_tree;
NodePath base_hint;
- bool use_path_from_scene_root;
+ bool use_path_from_scene_root = false;
Vector<StringName> valid_types;
void _node_selected(const NodePath &p_path);
diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp
index 61261af608..f59ba66862 100644
--- a/editor/editor_properties_array_dict.cpp
+++ b/editor/editor_properties_array_dict.cpp
@@ -175,7 +175,7 @@ void EditorPropertyArray::_change_type(Object *p_button, int p_index) {
Button *button = Object::cast_to<Button>(p_button);
changing_type_index = p_index;
Rect2 rect = button->get_screen_rect();
- change_type->set_as_minsize();
+ change_type->reset_size();
change_type->set_position(rect.get_end() - Vector2(change_type->get_contents_minimum_size().x, 0));
change_type->popup();
}
@@ -253,6 +253,7 @@ void EditorPropertyArray::update_property() {
if (vbox) {
set_bottom_editor(nullptr);
memdelete(vbox);
+ button_add_item = nullptr;
vbox = nullptr;
}
return;
@@ -408,6 +409,7 @@ void EditorPropertyArray::update_property() {
if (vbox) {
set_bottom_editor(nullptr);
memdelete(vbox);
+ button_add_item = nullptr;
vbox = nullptr;
}
}
@@ -714,7 +716,6 @@ EditorPropertyArray::EditorPropertyArray() {
size_slider = nullptr;
button_add_item = nullptr;
paginator = nullptr;
- updating = false;
change_type = memnew(PopupMenu);
add_child(change_type);
change_type->connect("id_pressed", callable_mp(this, &EditorPropertyArray::_change_type_menu));
@@ -723,8 +724,6 @@ EditorPropertyArray::EditorPropertyArray() {
subtype = Variant::NIL;
subtype_hint = PROPERTY_HINT_NONE;
subtype_hint_string = "";
-
- dropping = false;
}
///////////////////// DICTIONARY ///////////////////////////
@@ -742,7 +741,7 @@ void EditorPropertyDictionary::_property_changed(const String &p_property, Varia
emit_changed(get_edited_property(), dict, "", true);
- dict = dict.duplicate(); // Duplicate, so undo/redo works better\.
+ dict = dict.duplicate(); // Duplicate, so undo/redo works better.
object->set_dict(dict);
}
}
@@ -751,7 +750,7 @@ void EditorPropertyDictionary::_change_type(Object *p_button, int p_index) {
Button *button = Object::cast_to<Button>(p_button);
Rect2 rect = button->get_screen_rect();
- change_type->set_as_minsize();
+ change_type->reset_size();
change_type->set_position(rect.get_end() - Vector2(change_type->get_contents_minimum_size().x, 0));
change_type->popup();
changing_type_index = p_index;
@@ -805,7 +804,7 @@ void EditorPropertyDictionary::_change_type_menu(int p_index) {
emit_changed(get_edited_property(), dict, "", false);
- dict = dict.duplicate(); // Duplicate, so undo/redo works better\.
+ dict = dict.duplicate(); // Duplicate, so undo/redo works better.
object->set_dict(dict);
update_property();
}
@@ -814,11 +813,12 @@ void EditorPropertyDictionary::update_property() {
Variant updated_val = get_edited_object()->get(get_edited_property());
if (updated_val.get_type() == Variant::NIL) {
- edit->set_text("Dictionary (Nil)"); // This provides symmetry with the array property.
+ edit->set_text(TTR("Dictionary (Nil)")); // This provides symmetry with the array property.
edit->set_pressed(false);
if (vbox) {
set_bottom_editor(nullptr);
memdelete(vbox);
+ button_add_item = nullptr;
vbox = nullptr;
}
return;
@@ -826,7 +826,7 @@ void EditorPropertyDictionary::update_property() {
Dictionary dict = updated_val;
- edit->set_text("Dictionary (size " + itos(dict.size()) + ")");
+ edit->set_text(vformat(TTR("Dictionary (size %d)"), dict.size()));
bool unfolded = get_edited_object()->editor_is_section_unfolded(get_edited_property());
if (edit->is_pressed() != unfolded) {
@@ -1144,6 +1144,7 @@ void EditorPropertyDictionary::update_property() {
if (vbox) {
set_bottom_editor(nullptr);
memdelete(vbox);
+ button_add_item = nullptr;
vbox = nullptr;
}
}
@@ -1210,9 +1211,232 @@ EditorPropertyDictionary::EditorPropertyDictionary() {
vbox = nullptr;
button_add_item = nullptr;
paginator = nullptr;
- updating = false;
change_type = memnew(PopupMenu);
add_child(change_type);
change_type->connect("id_pressed", callable_mp(this, &EditorPropertyDictionary::_change_type_menu));
changing_type_index = -1;
}
+
+///////////////////// LOCALIZABLE STRING ///////////////////////////
+
+void EditorPropertyLocalizableString::_property_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing) {
+ if (p_property.begins_with("indices")) {
+ int index = p_property.get_slice("/", 1).to_int();
+ Dictionary dict = object->get_dict();
+ Variant key = dict.get_key_at_index(index);
+ dict[key] = p_value;
+
+ emit_changed(get_edited_property(), dict, "", true);
+
+ dict = dict.duplicate(); // Duplicate, so undo/redo works better.
+ object->set_dict(dict);
+ }
+}
+
+void EditorPropertyLocalizableString::_add_locale_popup() {
+ locale_select->popup_locale_dialog();
+}
+
+void EditorPropertyLocalizableString::_add_locale(const String &p_locale) {
+ Dictionary dict = object->get_dict();
+
+ object->set_new_item_key(p_locale);
+ object->set_new_item_value(String());
+ dict[object->get_new_item_key()] = object->get_new_item_value();
+
+ emit_changed(get_edited_property(), dict, "", false);
+
+ dict = dict.duplicate(); // Duplicate, so undo/redo works better.
+ object->set_dict(dict);
+ update_property();
+}
+
+void EditorPropertyLocalizableString::_remove_item(Object *p_button, int p_index) {
+ Dictionary dict = object->get_dict();
+
+ Variant key = dict.get_key_at_index(p_index);
+ dict.erase(key);
+
+ emit_changed(get_edited_property(), dict, "", false);
+
+ dict = dict.duplicate(); // Duplicate, so undo/redo works better.
+ object->set_dict(dict);
+ update_property();
+}
+
+void EditorPropertyLocalizableString::update_property() {
+ Variant updated_val = get_edited_object()->get(get_edited_property());
+
+ if (updated_val.get_type() == Variant::NIL) {
+ edit->set_text(TTR("Localizable String (Nil)")); // This provides symmetry with the array property.
+ edit->set_pressed(false);
+ if (vbox) {
+ set_bottom_editor(nullptr);
+ memdelete(vbox);
+ button_add_item = nullptr;
+ vbox = nullptr;
+ }
+ return;
+ }
+
+ Dictionary dict = updated_val;
+
+ edit->set_text(vformat(TTR("Localizable String (size %d)"), dict.size()));
+
+ bool unfolded = get_edited_object()->editor_is_section_unfolded(get_edited_property());
+ if (edit->is_pressed() != unfolded) {
+ edit->set_pressed(unfolded);
+ }
+
+ if (unfolded) {
+ updating = true;
+
+ if (!vbox) {
+ vbox = memnew(VBoxContainer);
+ add_child(vbox);
+ set_bottom_editor(vbox);
+
+ property_vbox = memnew(VBoxContainer);
+ property_vbox->set_h_size_flags(SIZE_EXPAND_FILL);
+ vbox->add_child(property_vbox);
+
+ paginator = memnew(EditorPaginator);
+ paginator->connect("page_changed", callable_mp(this, &EditorPropertyLocalizableString::_page_changed));
+ vbox->add_child(paginator);
+ } else {
+ // Queue children for deletion, deleting immediately might cause errors.
+ for (int i = property_vbox->get_child_count() - 1; i >= 0; i--) {
+ property_vbox->get_child(i)->queue_delete();
+ }
+ }
+
+ int size = dict.size();
+
+ int max_page = MAX(0, size - 1) / page_length;
+ page_index = MIN(page_index, max_page);
+
+ paginator->update(page_index, max_page);
+ paginator->set_visible(max_page > 0);
+
+ int offset = page_index * page_length;
+
+ int amount = MIN(size - offset, page_length);
+
+ dict = dict.duplicate();
+
+ object->set_dict(dict);
+
+ for (int i = 0; i < amount; i++) {
+ String prop_name;
+ Variant key;
+ Variant value;
+
+ prop_name = "indices/" + itos(i + offset);
+ key = dict.get_key_at_index(i + offset);
+ value = dict.get_value_at_index(i + offset);
+
+ EditorProperty *prop = memnew(EditorPropertyText);
+
+ prop->set_object_and_property(object.ptr(), prop_name);
+ int remove_index = 0;
+
+ String cs = key.get_construct_string();
+ prop->set_label(cs);
+ prop->set_tooltip(cs);
+ remove_index = i + offset;
+
+ prop->set_selectable(false);
+ prop->connect("property_changed", callable_mp(this, &EditorPropertyLocalizableString::_property_changed));
+ prop->connect("object_id_selected", callable_mp(this, &EditorPropertyLocalizableString::_object_id_selected));
+
+ HBoxContainer *hbox = memnew(HBoxContainer);
+ property_vbox->add_child(hbox);
+ hbox->add_child(prop);
+ prop->set_h_size_flags(SIZE_EXPAND_FILL);
+ Button *edit = memnew(Button);
+ edit->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")));
+ hbox->add_child(edit);
+ edit->connect("pressed", callable_mp(this, &EditorPropertyLocalizableString::_remove_item), varray(edit, remove_index));
+
+ prop->update_property();
+ }
+
+ if (page_index == max_page) {
+ button_add_item = memnew(Button);
+ button_add_item->set_text(TTR("Add Translation"));
+ button_add_item->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons")));
+ button_add_item->connect("pressed", callable_mp(this, &EditorPropertyLocalizableString::_add_locale_popup));
+ property_vbox->add_child(button_add_item);
+ }
+
+ updating = false;
+
+ } else {
+ if (vbox) {
+ set_bottom_editor(nullptr);
+ memdelete(vbox);
+ button_add_item = nullptr;
+ vbox = nullptr;
+ }
+ }
+}
+
+void EditorPropertyLocalizableString::_object_id_selected(const StringName &p_property, ObjectID p_id) {
+ emit_signal(SNAME("object_id_selected"), p_property, p_id);
+}
+
+void EditorPropertyLocalizableString::_notification(int p_what) {
+ switch (p_what) {
+ case NOTIFICATION_THEME_CHANGED:
+ case NOTIFICATION_ENTER_TREE: {
+ if (Object::cast_to<Button>(button_add_item)) {
+ button_add_item->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons")));
+ }
+ } break;
+ }
+}
+
+void EditorPropertyLocalizableString::_edit_pressed() {
+ Variant prop_val = get_edited_object()->get(get_edited_property());
+ if (prop_val.get_type() == Variant::NIL) {
+ Callable::CallError ce;
+ Variant::construct(Variant::DICTIONARY, prop_val, nullptr, 0, ce);
+ get_edited_object()->set(get_edited_property(), prop_val);
+ }
+
+ get_edited_object()->editor_set_section_unfold(get_edited_property(), edit->is_pressed());
+ update_property();
+}
+
+void EditorPropertyLocalizableString::_page_changed(int p_page) {
+ if (updating) {
+ return;
+ }
+ page_index = p_page;
+ update_property();
+}
+
+void EditorPropertyLocalizableString::_bind_methods() {
+}
+
+EditorPropertyLocalizableString::EditorPropertyLocalizableString() {
+ object.instantiate();
+ page_length = int(EDITOR_GET("interface/inspector/max_array_dictionary_items_per_page"));
+
+ edit = memnew(Button);
+ edit->set_h_size_flags(SIZE_EXPAND_FILL);
+ edit->set_clip_text(true);
+ edit->connect("pressed", callable_mp(this, &EditorPropertyLocalizableString::_edit_pressed));
+ edit->set_toggle_mode(true);
+ add_child(edit);
+ add_focusable(edit);
+
+ vbox = nullptr;
+ button_add_item = nullptr;
+ paginator = nullptr;
+ updating = false;
+
+ locale_select = memnew(EditorLocaleDialog);
+ locale_select->connect("locale_selected", callable_mp(this, &EditorPropertyLocalizableString::_add_locale));
+ add_child(locale_select);
+}
diff --git a/editor/editor_properties_array_dict.h b/editor/editor_properties_array_dict.h
index 292de6d6db..3d9fe90b20 100644
--- a/editor/editor_properties_array_dict.h
+++ b/editor/editor_properties_array_dict.h
@@ -32,6 +32,7 @@
#define EDITOR_PROPERTIES_ARRAY_DICT_H
#include "editor/editor_inspector.h"
+#include "editor/editor_locale_dialog.h"
#include "editor/editor_spin_slider.h"
#include "editor/filesystem_dock.h"
#include "scene/gui/button.h"
@@ -80,8 +81,8 @@ class EditorPropertyArray : public EditorProperty {
GDCLASS(EditorPropertyArray, EditorProperty);
PopupMenu *change_type;
- bool updating;
- bool dropping;
+ bool updating = false;
+ bool dropping = false;
Ref<EditorPropertyArrayObject> object;
int page_length = 20;
@@ -138,7 +139,7 @@ class EditorPropertyDictionary : public EditorProperty {
GDCLASS(EditorPropertyDictionary, EditorProperty);
PopupMenu *change_type;
- bool updating;
+ bool updating = false;
Ref<EditorPropertyDictionaryObject> object;
int page_length = 20;
@@ -169,4 +170,39 @@ public:
EditorPropertyDictionary();
};
+class EditorPropertyLocalizableString : public EditorProperty {
+ GDCLASS(EditorPropertyLocalizableString, EditorProperty);
+
+ EditorLocaleDialog *locale_select;
+
+ bool updating;
+
+ Ref<EditorPropertyDictionaryObject> object;
+ int page_length = 20;
+ int page_index = 0;
+ Button *edit;
+ VBoxContainer *vbox;
+ VBoxContainer *property_vbox;
+ EditorSpinSlider *size_slider;
+ Button *button_add_item;
+ EditorPaginator *paginator;
+
+ void _page_changed(int p_page);
+ void _edit_pressed();
+ void _remove_item(Object *p_button, int p_index);
+ void _property_changed(const String &p_property, Variant p_value, const String &p_name = "", bool p_changing = false);
+
+ void _add_locale_popup();
+ void _add_locale(const String &p_locale);
+ void _object_id_selected(const StringName &p_property, ObjectID p_id);
+
+protected:
+ static void _bind_methods();
+ void _notification(int p_what);
+
+public:
+ virtual void update_property() override;
+ EditorPropertyLocalizableString();
+};
+
#endif // EDITOR_PROPERTIES_ARRAY_DICT_H
diff --git a/editor/editor_property_name_processor.cpp b/editor/editor_property_name_processor.cpp
new file mode 100644
index 0000000000..20327cb867
--- /dev/null
+++ b/editor/editor_property_name_processor.cpp
@@ -0,0 +1,136 @@
+/*************************************************************************/
+/* editor_property_name_processor.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#include "editor_property_name_processor.h"
+
+#include "editor_settings.h"
+
+EditorPropertyNameProcessor *EditorPropertyNameProcessor::singleton = nullptr;
+
+String EditorPropertyNameProcessor::_capitalize_name(const String &p_name) const {
+ String capitalized_string = p_name.capitalize();
+
+ // Fix the casing of a few strings commonly found in editor property/setting names.
+ for (Map<String, String>::Element *E = capitalize_string_remaps.front(); E; E = E->next()) {
+ capitalized_string = capitalized_string.replace(E->key(), E->value());
+ }
+
+ return capitalized_string;
+}
+
+String EditorPropertyNameProcessor::process_name(const String &p_name) const {
+ const String capitalized_string = _capitalize_name(p_name);
+ if (EDITOR_GET("interface/editor/translate_properties")) {
+ return TTRGET(capitalized_string);
+ }
+ return capitalized_string;
+}
+
+String EditorPropertyNameProcessor::make_tooltip_for_name(const String &p_name) const {
+ const String capitalized_string = _capitalize_name(p_name);
+ if (EDITOR_GET("interface/editor/translate_properties")) {
+ return capitalized_string;
+ }
+ return TTRGET(capitalized_string);
+}
+
+EditorPropertyNameProcessor::EditorPropertyNameProcessor() {
+ ERR_FAIL_COND(singleton != nullptr);
+ singleton = this;
+
+ // The following initialization is parsed in `editor/translations/extract.py` with a regex.
+ // The map name and value definition format should be kept synced with the regex.
+ capitalize_string_remaps["2d"] = "2D";
+ capitalize_string_remaps["3d"] = "3D";
+ capitalize_string_remaps["Aa"] = "AA";
+ capitalize_string_remaps["Adb"] = "ADB";
+ capitalize_string_remaps["Ao"] = "AO";
+ capitalize_string_remaps["Bptc"] = "BPTC";
+ capitalize_string_remaps["Bvh"] = "BVH";
+ capitalize_string_remaps["Csg"] = "CSG";
+ capitalize_string_remaps["Cpu"] = "CPU";
+ capitalize_string_remaps["Db"] = "dB";
+ capitalize_string_remaps["Dof"] = "DoF";
+ capitalize_string_remaps["Dpi"] = "DPI";
+ capitalize_string_remaps["Etc"] = "ETC";
+ capitalize_string_remaps["Fbx"] = "FBX";
+ capitalize_string_remaps["Fps"] = "FPS";
+ capitalize_string_remaps["Fov"] = "FOV";
+ capitalize_string_remaps["Fsr"] = "FSR";
+ capitalize_string_remaps["Fs"] = "FS";
+ capitalize_string_remaps["Fxaa"] = "FXAA";
+ capitalize_string_remaps["Ggx"] = "GGX";
+ capitalize_string_remaps["Gi"] = "GI";
+ capitalize_string_remaps["Gdscript"] = "GDScript";
+ capitalize_string_remaps["Gles 2"] = "GLES2";
+ capitalize_string_remaps["Gles 3"] = "GLES3";
+ capitalize_string_remaps["Gpu"] = "GPU";
+ capitalize_string_remaps["Gui"] = "GUI";
+ capitalize_string_remaps["Hdr"] = "HDR";
+ capitalize_string_remaps["Hidpi"] = "hiDPI";
+ capitalize_string_remaps["Http"] = "HTTP";
+ capitalize_string_remaps["Ik"] = "IK";
+ capitalize_string_remaps["Ios"] = "iOS";
+ capitalize_string_remaps["Kb"] = "KB";
+ capitalize_string_remaps["Lod"] = "LOD";
+ capitalize_string_remaps["Msaa"] = "MSAA";
+ capitalize_string_remaps["Macos"] = "macOS";
+ capitalize_string_remaps["Opentype"] = "OpenType";
+ capitalize_string_remaps["Openxr"] = "OpenXR";
+ capitalize_string_remaps["Png"] = "PNG";
+ capitalize_string_remaps["Pvs"] = "PVS";
+ capitalize_string_remaps["Pvrtc"] = "PVRTC";
+ capitalize_string_remaps["S 3 Tc"] = "S3TC";
+ capitalize_string_remaps["Sdfgi"] = "SDFGI";
+ capitalize_string_remaps["Srgb"] = "sRGB";
+ capitalize_string_remaps["Ssao"] = "SSAO";
+ capitalize_string_remaps["Ssl"] = "SSL";
+ capitalize_string_remaps["Ssil"] = "SSIL";
+ capitalize_string_remaps["Ssh"] = "SSH";
+ capitalize_string_remaps["Sdf"] = "SDF";
+ capitalize_string_remaps["Sdk"] = "SDK";
+ capitalize_string_remaps["Tcp"] = "TCP";
+ capitalize_string_remaps["Url"] = "URL";
+ capitalize_string_remaps["Uv 1"] = "UV1";
+ capitalize_string_remaps["Uv 2"] = "UV2";
+ capitalize_string_remaps["Uv"] = "UV";
+ capitalize_string_remaps["Uwp"] = "UWP";
+ capitalize_string_remaps["Vram"] = "VRAM";
+ capitalize_string_remaps["Vsync"] = "V-Sync";
+ capitalize_string_remaps["Vector 2"] = "Vector2";
+ capitalize_string_remaps["Webp"] = "WebP";
+ capitalize_string_remaps["Webrtc"] = "WebRTC";
+ capitalize_string_remaps["Websocket"] = "WebSocket";
+ capitalize_string_remaps["Xr"] = "XR";
+}
+
+EditorPropertyNameProcessor::~EditorPropertyNameProcessor() {
+ singleton = nullptr;
+}
diff --git a/editor/editor_property_name_processor.h b/editor/editor_property_name_processor.h
new file mode 100644
index 0000000000..efd7abced3
--- /dev/null
+++ b/editor/editor_property_name_processor.h
@@ -0,0 +1,58 @@
+/*************************************************************************/
+/* editor_property_name_processor.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#ifndef EDITOR_PROPERTY_NAME_PROCESSOR_H
+#define EDITOR_PROPERTY_NAME_PROCESSOR_H
+
+#include "scene/main/node.h"
+
+class EditorPropertyNameProcessor : public Node {
+ GDCLASS(EditorPropertyNameProcessor, Node);
+
+ static EditorPropertyNameProcessor *singleton;
+
+ Map<String, String> capitalize_string_remaps;
+
+ String _capitalize_name(const String &p_name) const;
+
+public:
+ static EditorPropertyNameProcessor *get_singleton() { return singleton; }
+
+ // Capitalize & localize property path segments.
+ String process_name(const String &p_name) const;
+
+ // Make tooltip string for names processed by process_name().
+ String make_tooltip_for_name(const String &p_name) const;
+
+ EditorPropertyNameProcessor();
+ ~EditorPropertyNameProcessor();
+};
+
+#endif // EDITOR_PROPERTY_NAME_PROCESSOR_H
diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp
index fc1e466e9b..a7b2a4cfa6 100644
--- a/editor/editor_resource_picker.cpp
+++ b/editor/editor_resource_picker.cpp
@@ -149,7 +149,7 @@ void EditorResourcePicker::_update_menu() {
_update_menu_items();
Rect2 gt = edit_button->get_screen_rect();
- edit_menu->set_as_minsize();
+ edit_menu->reset_size();
int ms = edit_menu->get_contents_minimum_size().width;
Vector2 popup_pos = gt.get_end() - Vector2(ms, 0);
edit_menu->set_position(popup_pos);
@@ -476,7 +476,7 @@ void EditorResourcePicker::_button_input(const Ref<InputEvent> &p_event) {
_update_menu_items();
Vector2 pos = get_screen_position() + mb->get_position();
- edit_menu->set_as_minsize();
+ edit_menu->reset_size();
edit_menu->set_position(pos);
edit_menu->popup();
}
@@ -905,7 +905,12 @@ void EditorScriptPicker::set_create_options(Object *p_menu_node) {
}
menu_node->add_icon_item(get_theme_icon(SNAME("ScriptCreate"), SNAME("EditorIcons")), TTR("New Script"), OBJ_MENU_NEW_SCRIPT);
- menu_node->add_icon_item(get_theme_icon(SNAME("ScriptExtend"), SNAME("EditorIcons")), TTR("Extend Script"), OBJ_MENU_EXTEND_SCRIPT);
+ if (script_owner) {
+ Ref<Script> script = script_owner->get_script();
+ if (script.is_valid()) {
+ menu_node->add_icon_item(get_theme_icon(SNAME("ScriptExtend"), SNAME("EditorIcons")), TTR("Extend Script"), OBJ_MENU_EXTEND_SCRIPT);
+ }
+ }
menu_node->add_separator();
}
diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp
index 85d304ec5d..5db7b8673f 100644
--- a/editor/editor_run_native.cpp
+++ b/editor/editor_run_native.cpp
@@ -83,7 +83,7 @@ void EditorRunNative::_notification(int p_what) {
mb->set_tooltip(eep->get_options_tooltip());
for (int i = 0; i < dc; i++) {
mb->get_popup()->add_icon_item(eep->get_option_icon(i), eep->get_option_label(i));
- mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() - 1, eep->get_option_tooltip(i));
+ mb->get_popup()->set_item_tooltip(-1, eep->get_option_tooltip(i));
}
}
}
@@ -168,7 +168,6 @@ bool EditorRunNative::is_deploy_debug_remote_enabled() const {
EditorRunNative::EditorRunNative() {
set_process(true);
- first = true;
resume_idx = 0;
resume_platform = 0;
}
diff --git a/editor/editor_run_native.h b/editor/editor_run_native.h
index 199d094e55..4cb5779350 100644
--- a/editor/editor_run_native.h
+++ b/editor/editor_run_native.h
@@ -38,7 +38,7 @@ class EditorRunNative : public HBoxContainer {
GDCLASS(EditorRunNative, HBoxContainer);
Map<int, MenuButton *> menus;
- bool first;
+ bool first = true;
int resume_idx;
int resume_platform;
diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp
index 19374f826a..a44cf20771 100644
--- a/editor/editor_sectioned_inspector.cpp
+++ b/editor/editor_sectioned_inspector.cpp
@@ -30,6 +30,7 @@
#include "editor_sectioned_inspector.h"
+#include "editor/editor_property_name_processor.h"
#include "editor/editor_scale.h"
class SectionedInspectorFilter : public Object {
@@ -259,7 +260,8 @@ void SectionedInspector::update_category_list() {
if (!section_map.has(metasection)) {
TreeItem *ms = sections->create_item(parent);
section_map[metasection] = ms;
- ms->set_text(0, sectionarr[i].capitalize());
+ ms->set_text(0, EditorPropertyNameProcessor::get_singleton()->process_name(sectionarr[i]));
+ ms->set_tooltip(0, EditorPropertyNameProcessor::get_singleton()->make_tooltip_for_name(sectionarr[i]));
ms->set_metadata(0, metasection);
ms->set_selectable(0, false);
}
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index 0135b33bca..2d80fe85f8 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -460,9 +460,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
EDITOR_SETTING_USAGE(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "interface/theme/custom_theme", "", "*.res,*.tres,*.theme", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
// Scene tabs
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/scene_tabs/display_close_button", 1, "Never,If Tab Active,Always"); // TabBar::CloseButtonDisplayPolicy
_initial_set("interface/scene_tabs/show_thumbnail_on_hover", true);
- _initial_set("interface/scene_tabs/resize_if_many_tabs", true);
- EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_RANGE, "interface/scene_tabs/minimum_width", 50, "50,500,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
+ EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_RANGE, "interface/scene_tabs/maximum_width", 350, "0,9999,1", PROPERTY_USAGE_DEFAULT)
_initial_set("interface/scene_tabs/show_script_button", false);
/* Filesystem */
@@ -554,6 +554,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("text_editor/behavior/files/autosave_interval_secs", 0);
_initial_set("text_editor/behavior/files/restore_scripts_on_load", true);
_initial_set("text_editor/behavior/files/convert_indent_on_save", true);
+ _initial_set("text_editor/behavior/files/auto_reload_scripts_on_external_change", false);
// Script list
_initial_set("text_editor/script_list/show_members_overview", true);
@@ -586,6 +587,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
// Use a similar color to the 2D editor selection.
EDITOR_SETTING_USAGE(Variant::COLOR, PROPERTY_HINT_NONE, "editors/3d/selection_box_color", Color(1.0, 0.5, 0), "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
+ _initial_set("editors/3d_gizmos/gizmo_colors/instantiated", Color(0.7, 0.7, 0.7, 0.6));
+ _initial_set("editors/3d_gizmos/gizmo_colors/joint", Color(0.5, 0.8, 1));
+ _initial_set("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
// If a line is a multiple of this, it uses the primary grid color.
// Use a power of 2 value by default as it's more common to use powers of 2 in level design.
@@ -709,6 +713,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
// SSL
EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "network/ssl/editor_ssl_certificates", _SYSTEM_CERTS_PATH, "*.crt,*.pem")
+ // Profiler
+ _initial_set("debugger/profiler_frame_history_size", 600);
+
/* Extra config */
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "project_manager/sorting_order", 0, "Name,Path,Last Edited")
@@ -1216,7 +1223,7 @@ bool EditorSettings::is_dark_theme() {
void EditorSettings::list_text_editor_themes() {
String themes = "Default,Godot 2,Custom";
- DirAccess *d = DirAccess::open(get_text_editor_themes_dir());
+ DirAccessRef d = DirAccess::open(get_text_editor_themes_dir());
if (d) {
List<String> custom_themes;
d->list_dir_begin();
@@ -1228,7 +1235,6 @@ void EditorSettings::list_text_editor_themes() {
file = d->get_next();
}
d->list_dir_end();
- memdelete(d);
custom_themes.sort();
for (const String &E : custom_themes) {
@@ -1283,10 +1289,9 @@ bool EditorSettings::import_text_editor_theme(String p_file) {
return false;
}
- DirAccess *d = DirAccess::open(get_text_editor_themes_dir());
+ DirAccessRef d = DirAccess::open(get_text_editor_themes_dir());
if (d) {
d->copy(p_file, get_text_editor_themes_dir().plus_file(p_file.get_file()));
- memdelete(d);
return true;
}
}
@@ -1336,7 +1341,7 @@ Vector<String> EditorSettings::get_script_templates(const String &p_extension, c
if (!p_custom_path.is_empty()) {
template_dir = p_custom_path;
}
- DirAccess *d = DirAccess::open(template_dir);
+ DirAccessRef d = DirAccess::open(template_dir);
if (d) {
d->list_dir_begin();
String file = d->get_next();
@@ -1347,7 +1352,6 @@ Vector<String> EditorSettings::get_script_templates(const String &p_extension, c
file = d->get_next();
}
d->list_dir_end();
- memdelete(d);
}
return templates;
}
@@ -1657,8 +1661,6 @@ void EditorSettings::_bind_methods() {
EditorSettings::EditorSettings() {
last_order = 0;
- optimize_save = true;
- save_changed_setting = true;
_load_defaults();
}
diff --git a/editor/editor_settings.h b/editor/editor_settings.h
index 65723a24f8..4f25259a01 100644
--- a/editor/editor_settings.h
+++ b/editor/editor_settings.h
@@ -92,8 +92,8 @@ private:
Vector<String> favorites;
Vector<String> recent_dirs;
- bool save_changed_setting;
- bool optimize_save; //do not save stuff that came from config but was not set from engine
+ bool save_changed_setting = true;
+ bool optimize_save = true; //do not save stuff that came from config but was not set from engine
bool _set(const StringName &p_name, const Variant &p_value);
bool _set_only(const StringName &p_name, const Variant &p_value);
diff --git a/editor/editor_settings_dialog.cpp b/editor/editor_settings_dialog.cpp
index ed2134a056..eb3cf08578 100644
--- a/editor/editor_settings_dialog.cpp
+++ b/editor/editor_settings_dialog.cpp
@@ -37,6 +37,7 @@
#include "editor/editor_file_system.h"
#include "editor/editor_log.h"
#include "editor/editor_node.h"
+#include "editor/editor_property_name_processor.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "scene/gui/margin_container.h"
@@ -134,8 +135,6 @@ void EditorSettingsDialog::_notification(int p_what) {
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
_update_icons();
- // Update theme colors.
- inspector->update_category_list();
bool update_shortcuts_tab =
EditorSettings::get_singleton()->check_changed_settings_in_group("shortcuts") ||
@@ -340,13 +339,15 @@ void EditorSettingsDialog::_update_shortcuts() {
// Try go down tree
TreeItem *ti_next = ti->get_first_child();
- // Try go across tree
+ // Try go to the next node via in-order traversal
if (!ti_next) {
- ti_next = ti->get_next();
- }
- // Try go up tree, to next node
- if (!ti_next) {
- ti_next = ti->get_parent()->get_next();
+ ti_next = ti;
+ while (ti_next && !ti_next->get_next()) {
+ ti_next = ti_next->get_parent();
+ }
+ if (ti_next) {
+ ti_next = ti_next->get_next();
+ }
}
ti = ti_next;
@@ -430,8 +431,9 @@ void EditorSettingsDialog::_update_shortcuts() {
} else {
section = shortcuts->create_item(root);
- String item_name = section_name.capitalize();
+ String item_name = EditorPropertyNameProcessor::get_singleton()->process_name(section_name);
section->set_text(0, item_name);
+ section->set_tooltip(0, EditorPropertyNameProcessor::get_singleton()->make_tooltip_for_name(section_name));
section->set_selectable(0, false);
section->set_selectable(1, false);
section->set_custom_bg_color(0, shortcuts->get_theme_color(SNAME("prop_subsection"), SNAME("Editor")));
@@ -762,8 +764,6 @@ EditorSettingsDialog::EditorSettingsDialog() {
add_child(timer);
EditorSettings::get_singleton()->connect("settings_changed", callable_mp(this, &EditorSettingsDialog::_settings_changed));
get_ok_button()->set_text(TTR("Close"));
-
- updating = false;
}
EditorSettingsDialog::~EditorSettingsDialog() {
diff --git a/editor/editor_settings_dialog.h b/editor/editor_settings_dialog.h
index 4b90506b4b..e3139bb07a 100644
--- a/editor/editor_settings_dialog.h
+++ b/editor/editor_settings_dialog.h
@@ -43,7 +43,7 @@
class EditorSettingsDialog : public AcceptDialog {
GDCLASS(EditorSettingsDialog, AcceptDialog);
- bool updating;
+ bool updating = false;
TabContainer *tabs;
Control *tab_general;
diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp
index 509a316ef3..ef34f13d45 100644
--- a/editor/editor_spin_slider.cpp
+++ b/editor/editor_spin_slider.cpp
@@ -655,14 +655,10 @@ void EditorSpinSlider::_ensure_input_popup() {
}
EditorSpinSlider::EditorSpinSlider() {
- flat = false;
- grabbing_spinner_attempt = false;
- grabbing_spinner = false;
grabbing_spinner_dist_cache = 0;
pre_grab_value = 0;
set_focus_mode(FOCUS_ALL);
updown_offset = -1;
- hover_updown = false;
grabber = memnew(TextureRect);
add_child(grabber);
grabber->hide();
@@ -671,12 +667,5 @@ EditorSpinSlider::EditorSpinSlider() {
grabber->connect("mouse_entered", callable_mp(this, &EditorSpinSlider::_grabber_mouse_entered));
grabber->connect("mouse_exited", callable_mp(this, &EditorSpinSlider::_grabber_mouse_exited));
grabber->connect("gui_input", callable_mp(this, &EditorSpinSlider::_grabber_gui_input));
- mouse_over_spin = false;
- mouse_over_grabber = false;
- mousewheel_over_grabber = false;
- grabbing_grabber = false;
grabber_range = 1;
- value_input_just_closed = false;
- hide_slider = false;
- read_only = false;
}
diff --git a/editor/editor_spin_slider.h b/editor/editor_spin_slider.h
index 4e52980804..405c3bfc22 100644
--- a/editor/editor_spin_slider.h
+++ b/editor/editor_spin_slider.h
@@ -41,24 +41,24 @@ class EditorSpinSlider : public Range {
String label;
String suffix;
int updown_offset;
- bool hover_updown;
- bool mouse_hover;
+ bool hover_updown = false;
+ bool mouse_hover = false;
TextureRect *grabber;
int grabber_range;
- bool mouse_over_spin;
- bool mouse_over_grabber;
- bool mousewheel_over_grabber;
+ bool mouse_over_spin = false;
+ bool mouse_over_grabber = false;
+ bool mousewheel_over_grabber = false;
- bool grabbing_grabber;
+ bool grabbing_grabber = false;
int grabbing_from;
float grabbing_ratio;
- bool grabbing_spinner_attempt;
- bool grabbing_spinner;
+ bool grabbing_spinner_attempt = false;
+ bool grabbing_spinner = false;
- bool read_only;
+ bool read_only = false;
float grabbing_spinner_dist_cache;
Vector2 grabbing_spinner_mouse_pos;
double pre_grab_value;
@@ -73,8 +73,8 @@ class EditorSpinSlider : public Range {
void _value_input_submitted(const String &);
void _value_focus_exited();
void _value_input_gui_input(const Ref<InputEvent> &p_event);
- bool hide_slider;
- bool flat;
+ bool hide_slider = false;
+ bool flat = false;
void _evaluate_input_text();
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index 858f065bb6..d21049414c 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -844,7 +844,12 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_icon("visibility_visible", "PopupMenu", theme->get_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")));
theme->set_icon("visibility_xray", "PopupMenu", theme->get_icon(SNAME("GuiVisibilityXray"), SNAME("EditorIcons")));
- theme->set_constant("vseparation", "PopupMenu", (extra_spacing + default_margin_size + 1) * EDSCALE);
+ // Force the vseparation to be even so that the spacing on top and bottom is even.
+ // If the vsep is odd and cannot be split into 2 even groups (of pixels), then it will be lopsided.
+ // We add 2 to the vsep to give it some extra spacing which looks a bit more modern (see Windows, for example)
+ int vsep_base = extra_spacing + default_margin_size + 2;
+ int force_even_vsep = vsep_base + (vsep_base % 2);
+ theme->set_constant("vseparation", "PopupMenu", force_even_vsep * EDSCALE);
theme->set_constant("item_start_padding", "PopupMenu", popup_menu_margin_size * EDSCALE);
theme->set_constant("item_end_padding", "PopupMenu", popup_menu_margin_size * EDSCALE);
@@ -1185,7 +1190,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_icon("can_fold", "CodeEdit", theme->get_icon(SNAME("GuiTreeArrowDown"), SNAME("EditorIcons")));
theme->set_icon("executing_line", "CodeEdit", theme->get_icon(SNAME("MainPlay"), SNAME("EditorIcons")));
theme->set_icon("breakpoint", "CodeEdit", theme->get_icon(SNAME("Breakpoint"), SNAME("EditorIcons")));
- theme->set_constant("line_spacing", "CodeEdit", EDITOR_DEF("text_editor/appearance/whitespace/line_spacing", 6));
+ theme->set_constant("line_spacing", "CodeEdit", EDITOR_GET("text_editor/appearance/whitespace/line_spacing"));
// H/VSplitContainer
theme->set_stylebox("bg", "VSplitContainer", make_stylebox(theme->get_icon(SNAME("GuiVsplitBg"), SNAME("EditorIcons")), 1, 1, 1, 1));
diff --git a/editor/editor_toaster.cpp b/editor/editor_toaster.cpp
index 319b4709fe..7ca88bd2a2 100644
--- a/editor/editor_toaster.cpp
+++ b/editor/editor_toaster.cpp
@@ -385,12 +385,19 @@ Control *EditorToaster::popup(Control *p_control, Severity p_severity, double p_
}
void EditorToaster::popup_str(String p_message, Severity p_severity, String p_tooltip) {
+ if (is_processing_error) {
+ return;
+ }
+
// Since "_popup_str" adds nodes to the tree, and since the "add_child" method is not
// thread-safe, it's better to defer the call to the next cycle to be thread-safe.
+ is_processing_error = true;
call_deferred(SNAME("_popup_str"), p_message, p_severity, p_tooltip);
+ is_processing_error = false;
}
void EditorToaster::_popup_str(String p_message, Severity p_severity, String p_tooltip) {
+ is_processing_error = true;
// Check if we already have a popup with the given message.
Control *control = nullptr;
for (KeyValue<Control *, Toast> element : toasts) {
@@ -432,6 +439,7 @@ void EditorToaster::_popup_str(String p_message, Severity p_severity, String p_t
} else {
label->set_text(vformat("%s (%d)", p_message, toasts[control].count));
}
+ is_processing_error = false;
}
void EditorToaster::close(Control *p_control) {
diff --git a/editor/editor_toaster.h b/editor/editor_toaster.h
index 2ad8752bee..059245ce66 100644
--- a/editor/editor_toaster.h
+++ b/editor/editor_toaster.h
@@ -82,6 +82,8 @@ private:
};
Map<Control *, Toast> toasts;
+ bool is_processing_error = false; // Makes sure that we don't handle errors that are triggered within the EditorToaster error processing.
+
const double default_message_duration = 5.0;
static void _error_handler(void *p_self, const char *p_func, const char *p_file, int p_line, const char *p_error, const char *p_errorexp, bool p_editor_notify, ErrorHandlerType p_type);
diff --git a/editor/editor_vcs_interface.cpp b/editor/editor_vcs_interface.cpp
index 97611d9786..0954779300 100644
--- a/editor/editor_vcs_interface.cpp
+++ b/editor/editor_vcs_interface.cpp
@@ -153,7 +153,6 @@ String EditorVCSInterface::get_vcs_name() {
}
EditorVCSInterface::EditorVCSInterface() {
- is_initialized = false;
}
EditorVCSInterface::~EditorVCSInterface() {
diff --git a/editor/editor_vcs_interface.h b/editor/editor_vcs_interface.h
index 091936dadc..487625e84c 100644
--- a/editor/editor_vcs_interface.h
+++ b/editor/editor_vcs_interface.h
@@ -38,7 +38,7 @@
class EditorVCSInterface : public Object {
GDCLASS(EditorVCSInterface, Object)
- bool is_initialized;
+ bool is_initialized = false;
protected:
static EditorVCSInterface *singleton;
diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp
index 3cad600002..df3e73267e 100644
--- a/editor/export_template_manager.cpp
+++ b/editor/export_template_manager.cpp
@@ -44,7 +44,7 @@
void ExportTemplateManager::_update_template_status() {
// Fetch installed templates from the file system.
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
const String &templates_dir = EditorSettings::get_singleton()->get_templates_dir();
Error err = da->change_dir(templates_dir);
@@ -62,7 +62,6 @@ void ExportTemplateManager::_update_template_status() {
}
}
da->list_dir_end();
- memdelete(da);
// Update the state of the current version.
String current_version = VERSION_FULL_CONFIG;
@@ -645,7 +644,7 @@ Error ExportTemplateManager::install_android_template_from_file(const String &p_
// To support custom Android builds, we install the Java source code and buildsystem
// from android_source.zip to the project's res://android folder.
- DirAccessRef da = DirAccess::open("res://");
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
ERR_FAIL_COND_V(!da, ERR_CANT_CREATE);
// Make res://android dir (if it does not exist).
diff --git a/editor/fileserver/editor_file_server.cpp b/editor/fileserver/editor_file_server.cpp
index 4a6aa11938..df0af69359 100644
--- a/editor/fileserver/editor_file_server.cpp
+++ b/editor/fileserver/editor_file_server.cpp
@@ -298,8 +298,8 @@ void EditorFileServer::_thread_start(void *s) {
void EditorFileServer::start() {
stop();
- port = EDITOR_DEF("filesystem/file_server/port", 6010);
- password = EDITOR_DEF("filesystem/file_server/password", "");
+ port = EDITOR_GET("filesystem/file_server/port");
+ password = EDITOR_GET("filesystem/file_server/password");
cmd = CMD_ACTIVATE;
}
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index b41123c0dd..038cc2ab2f 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -396,12 +396,25 @@ void FileSystemDock::_notification(int p_what) {
}
} else if ((String(dd["type"]) == "files") || (String(dd["type"]) == "files_and_dirs") || (String(dd["type"]) == "resource")) {
tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM | Tree::DROP_MODE_INBETWEEN);
+ } else if ((String(dd["type"]) == "nodes")) {
+ holding_branch = true;
+ TreeItem *item = tree->get_next_selected(tree->get_root());
+ while (item) {
+ tree_items_selected_on_drag_begin.push_back(item);
+ item = tree->get_next_selected(item);
+ }
+ list_items_selected_on_drag_begin = files->get_selected_items();
}
}
} break;
case NOTIFICATION_DRAG_END: {
tree->set_drop_mode_flags(0);
+
+ if (holding_branch) {
+ holding_branch = false;
+ _reselect_items_selected_on_drag_begin(true);
+ }
} break;
case NOTIFICATION_THEME_CHANGED: {
@@ -512,16 +525,14 @@ void FileSystemDock::_navigate_to_path(const String &p_path, bool p_select_in_fa
if (target_path.ends_with("/")) {
target_path = target_path.substr(0, target_path.length() - 1);
}
- DirAccess *dirAccess = DirAccess::open("res://");
- if (dirAccess->file_exists(p_path)) {
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ if (da->file_exists(p_path)) {
path = target_path;
- } else if (dirAccess->dir_exists(p_path)) {
+ } else if (da->dir_exists(p_path)) {
path = target_path + "/";
} else {
- memdelete(dirAccess);
ERR_FAIL_MSG(vformat("Cannot navigate to '%s' as it has not been found in the file system!", p_path));
}
- memdelete(dirAccess);
}
_set_current_path_text(path);
@@ -768,14 +779,14 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) {
icon = folder_icon;
if (searched_string.length() == 0 || text.to_lower().find(searched_string) >= 0) {
files->add_item(text, icon, true);
- files->set_item_metadata(files->get_item_count() - 1, favorite);
+ files->set_item_metadata(-1, favorite);
}
} else if (favorite.ends_with("/")) {
text = favorite.substr(0, favorite.length() - 1).get_file();
icon = folder_icon;
if (searched_string.length() == 0 || text.to_lower().find(searched_string) >= 0) {
files->add_item(text, icon, true);
- files->set_item_metadata(files->get_item_count() - 1, favorite);
+ files->set_item_metadata(-1, favorite);
}
} else {
int index;
@@ -829,9 +840,9 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) {
bd += "/";
}
- files->set_item_metadata(files->get_item_count() - 1, bd);
- files->set_item_selectable(files->get_item_count() - 1, false);
- files->set_item_icon_modulate(files->get_item_count() - 1, folder_color);
+ files->set_item_metadata(-1, bd);
+ files->set_item_selectable(-1, false);
+ files->set_item_icon_modulate(-1, folder_color);
}
bool reversed = file_sort == FILE_SORT_NAME_REVERSE;
@@ -841,8 +852,8 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) {
String dname = efd->get_subdir(i)->get_name();
files->add_item(dname, folder_icon, true);
- files->set_item_metadata(files->get_item_count() - 1, directory.plus_file(dname) + "/");
- files->set_item_icon_modulate(files->get_item_count() - 1, folder_color);
+ files->set_item_metadata(-1, directory.plus_file(dname) + "/");
+ files->set_item_icon_modulate(-1, folder_color);
if (cselection.has(dname)) {
files->select(files->get_item_count() - 1, false);
@@ -1158,7 +1169,7 @@ void FileSystemDock::_try_move_item(const FileOrFolder &p_item, const String &p_
_get_all_items_in_dir(EditorFileSystem::get_singleton()->get_filesystem_path(old_path), file_changed_paths, folder_changed_paths);
}
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
print_verbose("Moving " + old_path + " -> " + new_path);
Error err = da->rename(old_path, new_path);
if (err == OK) {
@@ -1198,7 +1209,6 @@ void FileSystemDock::_try_move_item(const FileOrFolder &p_item, const String &p_
} else {
EditorNode::get_singleton()->add_io_error(TTR("Error moving:") + "\n" + old_path + "\n");
}
- memdelete(da);
}
void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const String &p_new_path) const {
@@ -1217,7 +1227,7 @@ void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const Strin
return;
}
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
print_verbose("Duplicating " + old_path + " -> " + new_path);
Error err = p_item.is_file ? da->copy(old_path, new_path) : da->copy_dir(old_path, new_path);
if (err == OK) {
@@ -1255,7 +1265,6 @@ void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const Strin
} else {
EditorNode::get_singleton()->add_io_error(TTR("Error duplicating:") + "\n" + old_path + "\n");
}
- memdelete(da);
}
void FileSystemDock::_update_resource_paths_after_move(const Map<String, String> &p_renames) const {
@@ -1405,12 +1414,11 @@ void FileSystemDock::_make_dir_confirm() {
directory = directory.get_base_dir();
}
print_verbose("Making folder " + dir_name + " in " + directory);
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
Error err = da->change_dir(directory);
if (err == OK) {
err = da->make_dir(dir_name);
}
- memdelete(da);
if (err == OK) {
print_verbose("FileSystem: calling rescan.");
@@ -1451,13 +1459,11 @@ void FileSystemDock::_make_scene_confirm() {
scene_name = directory.plus_file(scene_name);
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
if (da->file_exists(scene_name)) {
EditorNode::get_singleton()->show_warning(TTR("A file or folder with this name already exists."));
- memdelete(da);
return;
}
- memdelete(da);
int idx = EditorNode::get_singleton()->new_scene();
EditorNode::get_singleton()->get_editor_data().set_scene_path(idx, scene_name);
@@ -1520,7 +1526,7 @@ void FileSystemDock::_rename_operation_confirm() {
}
// Present a more user friendly warning for name conflict.
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
#if defined(WINDOWS_ENABLED) || defined(UWP_ENABLED)
// Workaround case insensitivity on Windows.
if ((da->file_exists(new_path) || da->dir_exists(new_path)) && new_path.to_lower() != old_path.to_lower()) {
@@ -1528,10 +1534,8 @@ void FileSystemDock::_rename_operation_confirm() {
if (da->file_exists(new_path) || da->dir_exists(new_path)) {
#endif
EditorNode::get_singleton()->show_warning(TTR("A file or folder with this name already exists."));
- memdelete(da);
return;
}
- memdelete(da);
Map<String, String> file_renames;
Map<String, String> folder_renames;
@@ -1575,13 +1579,11 @@ void FileSystemDock::_duplicate_operation_confirm() {
String new_path = base_dir.plus_file(new_name);
// Present a more user friendly warning for name conflict
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
if (da->file_exists(new_path) || da->dir_exists(new_path)) {
EditorNode::get_singleton()->show_warning(TTR("A file or folder with this name already exists."));
- memdelete(da);
return;
}
- memdelete(da);
_try_duplicate_item(to_duplicate, new_path);
@@ -2085,6 +2087,10 @@ void FileSystemDock::focus_on_filter() {
}
}
+ScriptCreateDialog *FileSystemDock::get_script_create_dialog() const {
+ return make_script_dialog;
+}
+
void FileSystemDock::set_file_list_display_mode(FileListDisplayMode p_mode) {
if (p_mode == file_list_display_mode) {
return;
@@ -2647,8 +2653,79 @@ void FileSystemDock::_file_multi_selected(int p_index, bool p_selected) {
call_deferred(SNAME("_update_import_dock"));
}
+void FileSystemDock::_tree_mouse_exited() {
+ if (holding_branch) {
+ _reselect_items_selected_on_drag_begin();
+ }
+}
+
+void FileSystemDock::_reselect_items_selected_on_drag_begin(bool reset) {
+ TreeItem *selected_item = tree->get_next_selected(tree->get_root());
+ if (selected_item) {
+ selected_item->deselect(0);
+ }
+ if (!tree_items_selected_on_drag_begin.is_empty()) {
+ bool reselected = false;
+ for (TreeItem *item : tree_items_selected_on_drag_begin) {
+ if (item->get_tree()) {
+ item->select(0);
+ reselected = true;
+ }
+ }
+
+ if (reset) {
+ tree_items_selected_on_drag_begin.clear();
+ }
+
+ if (!reselected) {
+ // If couldn't reselect the items selected on drag begin, select the "res://" item.
+ tree->get_root()->get_child(1)->select(0);
+ }
+ }
+
+ files->deselect_all();
+ if (!list_items_selected_on_drag_begin.is_empty()) {
+ for (const int idx : list_items_selected_on_drag_begin) {
+ files->select(idx, false);
+ }
+
+ if (reset) {
+ list_items_selected_on_drag_begin.clear();
+ }
+ }
+}
+
void FileSystemDock::_tree_gui_input(Ref<InputEvent> p_event) {
Ref<InputEventKey> key = p_event;
+
+ Ref<InputEventMouseMotion> mm = p_event;
+ if (mm.is_valid()) {
+ TreeItem *item = tree->get_item_at_position(mm->get_position());
+ if (item && holding_branch) {
+ String fpath = item->get_metadata(0);
+ while (!fpath.ends_with("/") && fpath != "res://" && item->get_parent()) { // Find the parent folder tree item.
+ item = item->get_parent();
+ fpath = item->get_metadata(0);
+ }
+
+ TreeItem *deselect_item = tree->get_next_selected(tree->get_root());
+ while (deselect_item) {
+ deselect_item->deselect(0);
+ deselect_item = tree->get_next_selected(deselect_item);
+ }
+ item->select(0);
+
+ if (display_mode == DisplayMode::DISPLAY_MODE_SPLIT) {
+ files->deselect_all();
+ // Try to select the corresponding file list item.
+ const int files_item_idx = files->find_metadata(fpath);
+ if (files_item_idx != -1) {
+ files->select(files_item_idx);
+ }
+ }
+ }
+ }
+
if (key.is_valid() && key->is_pressed() && !key->is_echo()) {
if (ED_IS_SHORTCUT("filesystem_dock/duplicate", p_event)) {
_tree_rmb_option(FILE_DUPLICATE);
@@ -2669,6 +2746,43 @@ void FileSystemDock::_tree_gui_input(Ref<InputEvent> p_event) {
}
void FileSystemDock::_file_list_gui_input(Ref<InputEvent> p_event) {
+ Ref<InputEventMouseMotion> mm = p_event;
+ if (mm.is_valid() && holding_branch) {
+ const int item_idx = files->get_item_at_position(mm->get_position());
+ if (item_idx != -1) {
+ files->deselect_all();
+ String fpath = files->get_item_metadata(item_idx);
+ if (fpath.ends_with("/") || fpath == "res://") {
+ files->select(item_idx);
+ }
+
+ TreeItem *deselect_item = tree->get_next_selected(tree->get_root());
+ while (deselect_item) {
+ deselect_item->deselect(0);
+ deselect_item = tree->get_next_selected(deselect_item);
+ }
+
+ // Try to select the corresponding tree item.
+ TreeItem *tree_item = tree->get_item_with_text(files->get_item_text(item_idx));
+ if (tree_item) {
+ tree_item->select(0);
+ } else {
+ // Find parent folder.
+ fpath = fpath.substr(0, fpath.rfind("/") + 1);
+ if (fpath.size() > String("res://").size()) {
+ fpath = fpath.left(fpath.size() - 2); // Remove last '/'.
+ const int slash_idx = fpath.rfind("/");
+ fpath = fpath.substr(slash_idx + 1, fpath.size() - slash_idx - 1);
+ }
+
+ tree_item = tree->get_item_with_text(fpath);
+ if (tree_item) {
+ tree_item->select(0);
+ }
+ }
+ }
+ }
+
Ref<InputEventKey> key = p_event;
if (key.is_valid() && key->is_pressed() && !key->is_echo()) {
if (ED_IS_SHORTCUT("filesystem_dock/duplicate", p_event)) {
@@ -2697,7 +2811,7 @@ void FileSystemDock::_get_imported_files(const String &p_path, Vector<String> &f
return;
}
- DirAccess *da = DirAccess::open(p_path);
+ DirAccessRef da = DirAccess::open(p_path);
da->list_dir_begin();
String n = da->get_next();
while (!n.is_empty()) {
@@ -2932,6 +3046,7 @@ FileSystemDock::FileSystemDock() {
tree->connect("empty_rmb", callable_mp(this, &FileSystemDock::_tree_rmb_empty));
tree->connect("nothing_selected", callable_mp(this, &FileSystemDock::_tree_empty_selected));
tree->connect("gui_input", callable_mp(this, &FileSystemDock::_tree_gui_input));
+ tree->connect("mouse_exited", callable_mp(this, &FileSystemDock::_tree_mouse_exited));
file_list_vb = memnew(VBoxContainer);
file_list_vb->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -3057,10 +3172,7 @@ FileSystemDock::FileSystemDock() {
searched_string = String();
uncollapsed_paths_before_search = Vector<String>();
- updating_tree = false;
tree_update_id = 0;
- initialized = false;
- import_dock_needs_update = false;
history_pos = 0;
history_max_size = 20;
@@ -3069,8 +3181,6 @@ FileSystemDock::FileSystemDock() {
display_mode = DISPLAY_MODE_TREE_ONLY;
old_display_mode = DISPLAY_MODE_TREE_ONLY;
file_list_display_mode = FILE_LIST_DISPLAY_THUMBNAILS;
-
- always_show_folders = false;
}
FileSystemDock::~FileSystemDock() {
diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h
index 21c50beeb2..92dac374ec 100644
--- a/editor/filesystem_dock.h
+++ b/editor/filesystem_dock.h
@@ -154,7 +154,7 @@ private:
ShaderCreateDialog *make_shader_dialog;
CreateDialog *new_resource_dialog;
- bool always_show_folders;
+ bool always_show_folders = false;
class FileOrFolder {
public:
@@ -177,13 +177,20 @@ private:
String path;
- bool initialized;
+ bool initialized = false;
- bool updating_tree;
+ bool updating_tree = false;
int tree_update_id;
Tree *tree;
ItemList *files;
- bool import_dock_needs_update;
+ bool import_dock_needs_update = false;
+
+ bool holding_branch = false;
+ Vector<TreeItem *> tree_items_selected_on_drag_begin;
+ PackedInt32Array list_items_selected_on_drag_begin;
+
+ void _tree_mouse_exited();
+ void _reselect_items_selected_on_drag_begin(bool reset = false);
Ref<Texture2D> _get_tree_item_icon(bool p_is_valid, String p_file_type);
bool _create_tree(TreeItem *p_parent, EditorFileSystemDirectory *p_dir, Vector<String> &uncollapsed_paths, bool p_select_in_favorites, bool p_unfold_path = false);
@@ -313,6 +320,8 @@ public:
void navigate_to_path(const String &p_path);
void focus_on_filter();
+ ScriptCreateDialog *get_script_create_dialog() const;
+
void fix_dependencies(const String &p_for_file);
int get_split_offset() { return split_box->get_split_offset(); }
diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp
index eff9185c71..1ce363c651 100644
--- a/editor/find_in_files.cpp
+++ b/editor/find_in_files.cpp
@@ -612,8 +612,6 @@ FindInFilesPanel::FindInFilesPanel() {
_results_display->create_item(); // Root
vbc->add_child(_results_display);
- _with_replace = false;
-
{
_replace_container = memnew(HBoxContainer);
diff --git a/editor/find_in_files.h b/editor/find_in_files.h
index 1b6666b554..cf14f3d5c3 100644
--- a/editor/find_in_files.h
+++ b/editor/find_in_files.h
@@ -210,7 +210,7 @@ private:
ProgressBar *_progress_bar;
Map<String, TreeItem *> _file_items;
Map<TreeItem *, Result> _result_items;
- bool _with_replace;
+ bool _with_replace = false;
HBoxContainer *_replace_container;
LineEdit *_replace_line_edit;
diff --git a/editor/icons/StreamTexture.svg b/editor/icons/CompressedTexture2D.svg
index 068f65dead..068f65dead 100644
--- a/editor/icons/StreamTexture.svg
+++ b/editor/icons/CompressedTexture2D.svg
diff --git a/editor/icons/ViewportSpeed.svg b/editor/icons/ViewportSpeed.svg
index 8fceaffd52..57292e2e91 100644
--- a/editor/icons/ViewportSpeed.svg
+++ b/editor/icons/ViewportSpeed.svg
@@ -1 +1 @@
-<svg height="16" viewBox="0 0 4.2333333 4.2333333" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m1.5875 0c-.28858 0-.52917.24059-.52917.52917v.61132c-.085589-.051-.18113-.0891-.28525-.0853-.34849.0127-.5952.37346-.48059.70278l.26355.79066c.048664.14623.15979.24805.29249.30644l-.60927.40669c-.13121.0845-.22102.22389-.24133.3633-.020312.13941.017471.26985.087333.37465s.17614.19045.31264.22532c.13634.0348.29946.006.42788-.0827h.0005159l1.0852-.72348.26097.52192c.11682.23391.39274.34829.64079.26561l.79375-.26458-.00775.003c.15105-.0454.27732-.15615.33486-.2863.057538-.13015.055144-.26773.014986-.38809-.03156-.0946-.10972-.1687-.19275-.23617.069099-.0546.1445-.10364.18035-.19325.051761-.12941.045257-.29292-.02377-.43098l-.26459-.52946c-.089407-.17933-.27348-.29308-.47335-.29305h-.1111c.052029-.0817.1111-.16214.1111-.26458v-.79375c0-.28858-.24059-.52917-.52917-.52917z"/><path d="m1.5875.26458c-.14658 0-.26458.118-.26458.26459v.79375c0 .14658.118.26458.26458.26458h.26458v.262a.26461.26461 0 0 0 -.083716.0165l-.5426.18086-.18087-.5426a.26461.26461 0 0 0 -.262-.18448.26461.26461 0 0 0 -.2403.3514l.26458.79375a.26461.26461 0 0 0 .33486.16743l.44545-.14831v.16174c0 .0108.00495.02.0062.0305l-1.2113.80771a.26461.26461 0 1 0 .29352.44028l1.3379-.89194.39532.79014a.26461.26461 0 0 0 .32039.1328l.79375-.26458a.26461.26461 0 1 0 -.16743-.50175l-.57619.19172-.25787-.51625c.072998-.047.12402-.12495.12402-.21859v-.26458h.36587l.1912.38292a.26461.26461 0 1 0 .47336-.23668l-.26458-.52916a.26461.26461 0 0 0 -.23668-.14625h-.79375v-.26458h.26458c.14658 0 .26458-.118.26458-.26458v-.79375c0-.14659-.118-.26459-.26458-.26459zm0 .52917h.26458v.52917h-.26458z" fill="#fff" fill-opacity=".99608"/></svg>
+<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g stroke-width="3.77953"><path d="m6.0285136 0c-1.0906961 0-2.0000127.90931655-2.0000127 2.0000126v2.3105008c-.3234859-.1927559-.6845858-.3367559-1.0781102-.3223937-1.3171276.048-2.24957487 1.4115024-1.8164032 2.6561764l.9960945 2.9883213c.183927.5526806.6039307.9375116 1.1054741 1.1581986l-2.30275287 1.537096c-.49591181.31937-.83535119.846198-.91211339 1.373102-.07676977.526904.06603212 1.019906.33007748 1.416.26404536.396095.66572598.719811 1.18163158.851603.5153008.131528 1.1318173.02268 1.6171842-.312566h.00195l4.1015433-2.734413.9863434 1.972611c.4415244.884069 1.4843716 1.316372 2.4218832 1.00388l3-.999987-.02929.01134c.570898-.17159 1.048139-.590173 1.265613-1.082078.217466-.491906.208418-1.011893.05664-1.466797-.119282-.357543-.41469-.637606-.728504-.892611.261162-.206362.546142-.39171.681638-.730394.195632-.489109.17105-1.1070991-.08984-1.6289007l-1.000027-2.0011107c-.337916-.6777827-1.033625-1.1077039-1.789039-1.1075905h-.419906c.196645-.3087874.419906-.6128126.419906-.9999874v-3.0000001c0-1.09069605-.909317-2.0000126-2.000012-2.0000126z"/><path d="m6.0285136.99998741c-.5540032 0-.9999874.44598429-.9999874 1.00002519v3.0000001c0 .5540031.4459842.9999874.9999874.9999874h.9999874v.9902362a1.0001008 1.0001008 0 0 0 -.316407.062362l-2.0507716.6835656-.6836032-2.0507717a1.0001008 1.0001008 0 0 0 -.9902362-.6972473 1.0001008 1.0001008 0 0 0 -.9082205 1.328126l.9999874 3.0000001a1.0001008 1.0001008 0 0 0 1.2656126.6328063l1.6835906-.5605418v.6113008c0 .040819.018709.075591.023433.1152757l-4.5781418 3.052762a1.0001008 1.0001008 0 1 0 1.1093669 1.664051l5.05663-3.371112 1.4941228 2.986356a1.0001008 1.0001008 0 0 0 1.210922.501921l3.000001-.999987a1.0001008 1.0001008 0 1 0 -.632807-1.896378l-2.177726.724611-.9746262-1.951182c.275898-.177637.4687372-.472252.4687372-.8261665v-.9999874h1.382815l.722646 1.4472569a1.0001246 1.0001246 0 1 0 1.789077-.8945388l-.999987-1.9999748a1.0001008 1.0001008 0 0 0 -.894539-.5527559h-2.9999995v-.9999874h.9999875c.554003 0 .999987-.4459843.999987-.9999874v-3.0000001c0-.5540409-.445984-1.00002519-.999987-1.00002519zm0 2.00001259h.9999874v2.0000127h-.9999874z" fill="#fff" fill-opacity=".99608"/></g></svg>
diff --git a/editor/import/dynamic_font_import_settings.cpp b/editor/import/dynamic_font_import_settings.cpp
index f0a2d7d553..2ecc483938 100644
--- a/editor/import/dynamic_font_import_settings.cpp
+++ b/editor/import/dynamic_font_import_settings.cpp
@@ -484,6 +484,14 @@ void DynamicFontImportSettings::_main_prop_changed(const String &p_edited_proper
if (font_preview->get_data_count() > 0) {
font_preview->get_data(0)->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int());
}
+ } else if (p_edited_property == "embolden") {
+ if (font_preview->get_data_count() > 0) {
+ font_preview->get_data(0)->set_embolden(import_settings_data->get("embolden"));
+ }
+ } else if (p_edited_property == "transform") {
+ if (font_preview->get_data_count() > 0) {
+ font_preview->get_data(0)->set_transform(import_settings_data->get("transform"));
+ }
} else if (p_edited_property == "oversampling") {
if (font_preview->get_data_count() > 0) {
font_preview->get_data(0)->set_oversampling(import_settings_data->get("oversampling"));
@@ -924,6 +932,8 @@ void DynamicFontImportSettings::_re_import() {
main_settings["force_autohinter"] = import_settings_data->get("force_autohinter");
main_settings["hinting"] = import_settings_data->get("hinting");
main_settings["subpixel_positioning"] = import_settings_data->get("subpixel_positioning");
+ main_settings["embolden"] = import_settings_data->get("embolden");
+ main_settings["transform"] = import_settings_data->get("transform");
main_settings["oversampling"] = import_settings_data->get("oversampling");
main_settings["compress"] = import_settings_data->get("compress");
@@ -1275,6 +1285,8 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
font_preview->get_data(0)->set_force_autohinter(import_settings_data->get("force_autohinter"));
font_preview->get_data(0)->set_hinting((TextServer::Hinting)import_settings_data->get("hinting").operator int());
font_preview->get_data(0)->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int());
+ font_preview->get_data(0)->set_embolden(import_settings_data->get("embolden"));
+ font_preview->get_data(0)->set_transform(import_settings_data->get("transform"));
font_preview->get_data(0)->set_oversampling(import_settings_data->get("oversampling"));
}
font_preview_label->add_theme_font_override("font", font_preview);
@@ -1334,6 +1346,8 @@ DynamicFontImportSettings::DynamicFontImportSettings() {
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "force_autohinter"), false));
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal"), 1));
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "subpixel_positioning", PROPERTY_HINT_ENUM, "Disabled,Auto,One half of a pixel,One quarter of a pixel"), 1));
+ options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "embolden", PROPERTY_HINT_RANGE, "-2,2,0.01"), 0.f));
+ options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::TRANSFORM2D, "transform"), Transform2D()));
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0));
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "compress", PROPERTY_HINT_NONE, ""), false));
diff --git a/editor/import/resource_importer_dynamic_font.cpp b/editor/import/resource_importer_dynamic_font.cpp
index 70fc87ea3f..077b94bb4e 100644
--- a/editor/import/resource_importer_dynamic_font.cpp
+++ b/editor/import/resource_importer_dynamic_font.cpp
@@ -109,6 +109,8 @@ void ResourceImporterDynamicFont::get_import_options(const String &p_path, List<
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force_autohinter"), false));
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal"), 1));
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "subpixel_positioning", PROPERTY_HINT_ENUM, "Disabled,Auto,One half of a pixel,One quarter of a pixel"), 1));
+ r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "embolden", PROPERTY_HINT_RANGE, "-2,2,0.01"), 0.f));
+ r_options->push_back(ImportOption(PropertyInfo(Variant::TRANSFORM2D, "transform"), Transform2D()));
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));
@@ -186,6 +188,8 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str
int hinting = p_options["hinting"];
int subpixel_positioning = p_options["subpixel_positioning"];
real_t oversampling = p_options["oversampling"];
+ real_t embolden = p_options["embolden"];
+ Transform2D transform = p_options["transform"];
// Load base font data.
Vector<uint8_t> data = FileAccess::get_file_as_array(p_source_file);
@@ -202,6 +206,8 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str
font->set_fixed_size(0);
font->set_force_autohinter(autohinter);
font->set_subpixel_positioning((TextServer::SubpixelPositioning)subpixel_positioning);
+ font->set_embolden(embolden);
+ font->set_transform(transform);
font->set_hinting((TextServer::Hinting)hinting);
font->set_oversampling(oversampling);
diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp
index d9dd273ed4..9ddee9c058 100644
--- a/editor/import/resource_importer_layered_texture.cpp
+++ b/editor/import/resource_importer_layered_texture.cpp
@@ -85,16 +85,16 @@ void ResourceImporterLayeredTexture::get_recognized_extensions(List<String> *p_e
String ResourceImporterLayeredTexture::get_save_extension() const {
switch (mode) {
case MODE_CUBEMAP: {
- return "scube";
+ return "ccube";
} break;
case MODE_2D_ARRAY: {
- return "stexarray";
+ return "ctexarray";
} break;
case MODE_CUBEMAP_ARRAY: {
- return "scubearray";
+ return "ccubearray";
} break;
case MODE_3D: {
- return "stex3d";
+ return "ctex3d";
} break;
}
@@ -274,11 +274,11 @@ void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, cons
f->store_32(0);
for (int i = 0; i < p_images.size(); i++) {
- ResourceImporterTexture::save_to_stex_format(f, p_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy);
+ ResourceImporterTexture::save_to_ctex_format(f, p_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy);
}
for (int i = 0; i < mipmap_images.size(); i++) {
- ResourceImporterTexture::save_to_stex_format(f, mipmap_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy);
+ ResourceImporterTexture::save_to_ctex_format(f, mipmap_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy);
}
f->close();
@@ -393,7 +393,7 @@ Error ResourceImporterLayeredTexture::import(const String &p_source_file, const
texture_import->bptc_ldr = bptc_ldr;
texture_import->mipmaps = mipmaps;
texture_import->used_channels = used_channels;
- _check_compress_stex(texture_import);
+ _check_compress_ctex(texture_import);
if (r_metadata) {
Dictionary metadata;
metadata["vram_texture"] = compress_mode == COMPRESS_VRAM_COMPRESSED;
@@ -474,7 +474,7 @@ ResourceImporterLayeredTexture::ResourceImporterLayeredTexture() {
ResourceImporterLayeredTexture::~ResourceImporterLayeredTexture() {
}
-void ResourceImporterLayeredTexture::_check_compress_stex(Ref<LayeredTextureImport> r_texture_import) {
+void ResourceImporterLayeredTexture::_check_compress_ctex(Ref<LayeredTextureImport> r_texture_import) {
String extension = get_save_extension();
ERR_FAIL_NULL(r_texture_import->csource);
if (r_texture_import->compress_mode != COMPRESS_VRAM_COMPRESSED) {
@@ -544,5 +544,5 @@ void ResourceImporterLayeredTexture::_check_compress_stex(Ref<LayeredTextureImpo
}
return;
}
- EditorNode::add_io_error("Warning, no suitable PC VRAM compression enabled in Project Settings. This texture will not display correctly on PC.");
+ EditorNode::add_io_error(TTR("Warning, no suitable PC VRAM compression enabled in Project Settings. This texture will not display correctly on PC."));
}
diff --git a/editor/import/resource_importer_layered_texture.h b/editor/import/resource_importer_layered_texture.h
index 58e5c47d8d..5791914a9b 100644
--- a/editor/import/resource_importer_layered_texture.h
+++ b/editor/import/resource_importer_layered_texture.h
@@ -87,7 +87,7 @@ protected:
static ResourceImporterLayeredTexture *singleton;
public:
- void _check_compress_stex(Ref<LayeredTextureImport> r_texture_import);
+ void _check_compress_ctex(Ref<LayeredTextureImport> r_texture_import);
static ResourceImporterLayeredTexture *get_singleton() { return singleton; }
virtual String get_importer_name() const override;
diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp
index 1561fc788c..1dec4b00bb 100644
--- a/editor/import/resource_importer_texture.cpp
+++ b/editor/import/resource_importer_texture.cpp
@@ -225,7 +225,7 @@ void ResourceImporterTexture::get_import_options(const String &p_path, List<Impo
}
}
-void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality) {
+void ResourceImporterTexture::save_to_ctex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality) {
switch (p_compress_mode) {
case COMPRESS_LOSSLESS: {
bool lossless_force_png = ProjectSettings::get_singleton()->get("rendering/textures/lossless_compression/force_png") ||
@@ -317,7 +317,7 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image
}
}
-void ResourceImporterTexture::_save_stex(const Ref<Image> &p_image, const String &p_to_path, CompressMode p_compress_mode, float p_lossy_quality, Image::CompressMode p_vram_compression, bool p_mipmaps, bool p_streamable, bool p_detect_3d, bool p_detect_roughness, bool p_detect_normal, bool p_force_normal, bool p_srgb_friendly, bool p_force_po2_for_compressed, uint32_t p_limit_mipmap, const Ref<Image> &p_normal, Image::RoughnessChannel p_roughness_channel) {
+void ResourceImporterTexture::_save_ctex(const Ref<Image> &p_image, const String &p_to_path, CompressMode p_compress_mode, float p_lossy_quality, Image::CompressMode p_vram_compression, bool p_mipmaps, bool p_streamable, bool p_detect_3d, bool p_detect_roughness, bool p_detect_normal, bool p_force_normal, bool p_srgb_friendly, bool p_force_po2_for_compressed, uint32_t p_limit_mipmap, const Ref<Image> &p_normal, Image::RoughnessChannel p_roughness_channel) {
FileAccess *f = FileAccess::open(p_to_path, FileAccess::WRITE);
ERR_FAIL_NULL(f);
f->store_8('G');
@@ -394,7 +394,7 @@ void ResourceImporterTexture::_save_stex(const Ref<Image> &p_image, const String
Image::UsedChannels used_channels = image->detect_used_channels(csource);
- save_to_stex_format(f, image, p_compress_mode, used_channels, p_vram_compression, p_lossy_quality);
+ save_to_ctex_format(f, image, p_compress_mode, used_channels, p_vram_compression, p_lossy_quality);
memdelete(f);
}
@@ -540,29 +540,29 @@ Error ResourceImporterTexture::import(const String &p_source_file, const String
if (!bptc_ldr && can_s3tc && is_ldr) {
image_compress_mode = Image::COMPRESS_S3TC;
}
- _save_stex(image, p_save_path + ".s3tc.ctex", compress_mode, lossy, image_compress_mode, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, false, mipmap_limit, normal_image, roughness_channel);
+ _save_ctex(image, p_save_path + ".s3tc.ctex", compress_mode, lossy, image_compress_mode, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, false, mipmap_limit, normal_image, roughness_channel);
r_platform_variants->push_back("s3tc");
formats_imported.push_back("s3tc");
}
if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc2")) {
- _save_stex(image, p_save_path + ".etc2.ctex", compress_mode, lossy, Image::COMPRESS_ETC2, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel);
+ _save_ctex(image, p_save_path + ".etc2.ctex", compress_mode, lossy, Image::COMPRESS_ETC2, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel);
r_platform_variants->push_back("etc2");
formats_imported.push_back("etc2");
}
if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc")) {
- _save_stex(image, p_save_path + ".etc.ctex", compress_mode, lossy, Image::COMPRESS_ETC, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel);
+ _save_ctex(image, p_save_path + ".etc.ctex", compress_mode, lossy, Image::COMPRESS_ETC, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel);
r_platform_variants->push_back("etc");
formats_imported.push_back("etc");
}
if (!ok_on_pc) {
- EditorNode::add_io_error("Warning, no suitable PC VRAM compression enabled in Project Settings. This texture will not display correctly on PC.");
+ EditorNode::add_io_error(TTR("Warning, no suitable PC VRAM compression enabled in Project Settings. This texture will not display correctly on PC."));
}
} else {
//import normally
- _save_stex(image, p_save_path + ".ctex", compress_mode, lossy, Image::COMPRESS_S3TC /*this is ignored */, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, false, mipmap_limit, normal_image, roughness_channel);
+ _save_ctex(image, p_save_path + ".ctex", compress_mode, lossy, Image::COMPRESS_S3TC /*this is ignored */, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, false, mipmap_limit, normal_image, roughness_channel);
}
if (r_metadata) {
diff --git a/editor/import/resource_importer_texture.h b/editor/import/resource_importer_texture.h
index bd43eaef58..b3a68260fc 100644
--- a/editor/import/resource_importer_texture.h
+++ b/editor/import/resource_importer_texture.h
@@ -74,10 +74,10 @@ protected:
static ResourceImporterTexture *singleton;
static const char *compression_formats[];
- void _save_stex(const Ref<Image> &p_image, const String &p_to_path, CompressMode p_compress_mode, float p_lossy_quality, Image::CompressMode p_vram_compression, bool p_mipmaps, bool p_streamable, bool p_detect_3d, bool p_detect_srgb, bool p_detect_normal, bool p_force_normal, bool p_srgb_friendly, bool p_force_po2_for_compressed, uint32_t p_limit_mipmap, const Ref<Image> &p_normal, Image::RoughnessChannel p_roughness_channel);
+ void _save_ctex(const Ref<Image> &p_image, const String &p_to_path, CompressMode p_compress_mode, float p_lossy_quality, Image::CompressMode p_vram_compression, bool p_mipmaps, bool p_streamable, bool p_detect_3d, bool p_detect_srgb, bool p_detect_normal, bool p_force_normal, bool p_srgb_friendly, bool p_force_po2_for_compressed, uint32_t p_limit_mipmap, const Ref<Image> &p_normal, Image::RoughnessChannel p_roughness_channel);
public:
- static void save_to_stex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality);
+ static void save_to_ctex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality);
static ResourceImporterTexture *get_singleton() { return singleton; }
virtual String get_importer_name() const override;
diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp
index 72cc33048c..9f1daac69f 100644
--- a/editor/import_dock.cpp
+++ b/editor/import_dock.cpp
@@ -128,7 +128,7 @@ void ImportDock::set_edit_path(const String &p_path) {
for (const Pair<String, String> &E : importer_names) {
import_as->add_item(E.first);
- import_as->set_item_metadata(import_as->get_item_count() - 1, E.second);
+ import_as->set_item_metadata(-1, E.second);
if (E.second == importer_name) {
import_as->select(import_as->get_item_count() - 1);
}
@@ -149,7 +149,7 @@ void ImportDock::set_edit_path(const String &p_path) {
void ImportDock::_add_keep_import_option(const String &p_importer_name) {
import_as->add_separator();
import_as->add_item(TTR("Keep File (No Import)"));
- import_as->set_item_metadata(import_as->get_item_count() - 1, "keep");
+ import_as->set_item_metadata(-1, "keep");
if (p_importer_name == "keep") {
import_as->select(import_as->get_item_count() - 1);
}
@@ -286,7 +286,7 @@ void ImportDock::set_edit_multiple_paths(const Vector<String> &p_paths) {
for (const Pair<String, String> &E : importer_names) {
import_as->add_item(E.first);
- import_as->set_item_metadata(import_as->get_item_count() - 1, E.second);
+ import_as->set_item_metadata(-1, E.second);
if (E.second == params->importer->get_importer_name()) {
import_as->select(import_as->get_item_count() - 1);
}
diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp
index a766650cd9..77594dde78 100644
--- a/editor/localization_editor.cpp
+++ b/editor/localization_editor.cpp
@@ -473,7 +473,6 @@ void LocalizationEditor::_bind_methods() {
LocalizationEditor::LocalizationEditor() {
undo_redo = EditorNode::get_undo_redo();
- updating_translations = false;
localization_changed = "localization_changed";
TabContainer *translations = memnew(TabContainer);
diff --git a/editor/localization_editor.h b/editor/localization_editor.h
index bde1b894e2..3424ba7c55 100644
--- a/editor/localization_editor.h
+++ b/editor/localization_editor.h
@@ -56,7 +56,7 @@ class LocalizationEditor : public VBoxContainer {
EditorFileDialog *pot_generate_dialog;
UndoRedo *undo_redo;
- bool updating_translations;
+ bool updating_translations = false;
String localization_changed;
void _translation_file_open();
diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp
index d5e7c312d9..02cc95e14a 100644
--- a/editor/plugin_config_dialog.cpp
+++ b/editor/plugin_config_dialog.cpp
@@ -50,7 +50,7 @@ void PluginConfigDialog::_on_confirmed() {
String path = "res://addons/" + subfolder_edit->get_text();
if (!_edit_mode) {
- DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
if (!d || d->make_dir_recursive(path) != OK) {
return;
}
diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp
index 5a2696fff1..22e0a3dabb 100644
--- a/editor/plugins/abstract_polygon_2d_editor.cpp
+++ b/editor/plugins/abstract_polygon_2d_editor.cpp
@@ -292,15 +292,14 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event)
_commit_action();
return true;
} else {
- Vector<Vector2> vertices2 = _get_polygon(insert.polygon);
- pre_move_edit = vertices2;
+ pre_move_edit = vertices;
edited_point = PosVertex(insert.polygon, insert.vertex + 1, xform.affine_inverse().xform(insert.pos));
- vertices2.insert(edited_point.vertex, edited_point.pos);
+ vertices.insert(edited_point.vertex, edited_point.pos);
selected_point = Vertex(edited_point.polygon, edited_point.vertex);
edge_point = PosVertex();
undo_redo->create_action(TTR("Insert Point"));
- _action_set_polygon(insert.polygon, vertices2);
+ _action_set_polygon(insert.polygon, vertices);
_commit_action();
return true;
}
diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp
index fe8b462084..94882b3464 100644
--- a/editor/plugins/animation_blend_space_1d_editor.cpp
+++ b/editor/plugins/animation_blend_space_1d_editor.cpp
@@ -88,7 +88,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_gui_input(const Ref<InputEven
}
int idx = menu->get_item_count();
- menu->add_item(vformat("Add %s", name), idx);
+ menu->add_item(vformat(TTR("Add %s"), name), idx);
menu->set_item_metadata(idx, E);
}
diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp
index 506a709728..4b7df75aec 100644
--- a/editor/plugins/animation_blend_space_2d_editor.cpp
+++ b/editor/plugins/animation_blend_space_2d_editor.cpp
@@ -111,7 +111,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven
continue; // nope
}
int idx = menu->get_item_count();
- menu->add_item(vformat("Add %s", name), idx);
+ menu->add_item(vformat(TTR("Add %s"), name), idx);
menu->set_item_metadata(idx, E);
}
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index dd166ccd1d..ab8e2ca54a 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -156,6 +156,8 @@ void AnimationPlayerEditor::_notification(int p_what) {
ITEM_ICON(TOOL_EDIT_TRANSITIONS, "Blend");
ITEM_ICON(TOOL_EDIT_RESOURCE, "Edit");
ITEM_ICON(TOOL_REMOVE_ANIM, "Remove");
+
+ _update_animation_list_icons();
} break;
}
}
@@ -859,22 +861,13 @@ void AnimationPlayerEditor::_update_player() {
int active_idx = -1;
for (const StringName &E : animlist) {
- Ref<Texture2D> icon;
- if (E == player->get_autoplay()) {
- if (E == SceneStringNames::get_singleton()->RESET) {
- icon = autoplay_reset_icon;
- } else {
- icon = autoplay_icon;
- }
- } else if (E == SceneStringNames::get_singleton()->RESET) {
- icon = reset_icon;
- }
- animation->add_icon_item(icon, E);
+ animation->add_item(E);
if (player->get_assigned_animation() == E) {
active_idx = animation->get_item_count() - 1;
}
}
+ _update_animation_list_icons();
updating = false;
if (active_idx != -1) {
@@ -903,6 +896,25 @@ void AnimationPlayerEditor::_update_player() {
_update_animation();
}
+void AnimationPlayerEditor::_update_animation_list_icons() {
+ for (int i = 0; i < animation->get_item_count(); i++) {
+ String name = animation->get_item_text(i);
+
+ Ref<Texture2D> icon;
+ if (name == player->get_autoplay()) {
+ if (name == SceneStringNames::get_singleton()->RESET) {
+ icon = autoplay_reset_icon;
+ } else {
+ icon = autoplay_icon;
+ }
+ } else if (name == SceneStringNames::get_singleton()->RESET) {
+ icon = reset_icon;
+ }
+
+ animation->set_item_icon(i, icon);
+ }
+}
+
void AnimationPlayerEditor::edit(AnimationPlayer *p_player) {
if (player && pin->is_pressed()) {
return; // Ignore, pinned.
@@ -1658,11 +1670,11 @@ AnimationPlayerEditor::AnimationPlayerEditor(AnimationPlayerEditorPlugin *p_plug
onion_skinning->set_tooltip(TTR("Onion Skinning Options"));
onion_skinning->get_popup()->add_separator(TTR("Directions"));
onion_skinning->get_popup()->add_check_item(TTR("Past"), ONION_SKINNING_PAST);
- onion_skinning->get_popup()->set_item_checked(onion_skinning->get_popup()->get_item_count() - 1, true);
+ onion_skinning->get_popup()->set_item_checked(-1, true);
onion_skinning->get_popup()->add_check_item(TTR("Future"), ONION_SKINNING_FUTURE);
onion_skinning->get_popup()->add_separator(TTR("Depth"));
onion_skinning->get_popup()->add_radio_check_item(TTR("1 step"), ONION_SKINNING_1_STEP);
- onion_skinning->get_popup()->set_item_checked(onion_skinning->get_popup()->get_item_count() - 1, true);
+ onion_skinning->get_popup()->set_item_checked(-1, true);
onion_skinning->get_popup()->add_radio_check_item(TTR("2 steps"), ONION_SKINNING_2_STEPS);
onion_skinning->get_popup()->add_radio_check_item(TTR("3 steps"), ONION_SKINNING_3_STEPS);
onion_skinning->get_popup()->add_separator();
diff --git a/editor/plugins/animation_player_editor_plugin.h b/editor/plugins/animation_player_editor_plugin.h
index 446c4d2f0e..5bb32e25e6 100644
--- a/editor/plugins/animation_player_editor_plugin.h
+++ b/editor/plugins/animation_player_editor_plugin.h
@@ -196,6 +196,7 @@ class AnimationPlayerEditor : public VBoxContainer {
void _list_changed();
void _update_animation();
void _update_player();
+ void _update_animation_list_icons();
void _blend_edited();
void _animation_player_changed(Object *p_pl);
diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp
index 6c284f2268..bd0c1afd19 100644
--- a/editor/plugins/animation_state_machine_editor.cpp
+++ b/editor/plugins/animation_state_machine_editor.cpp
@@ -108,7 +108,7 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv
continue; // nope
}
int idx = menu->get_item_count();
- menu->add_item(vformat("Add %s", name), idx);
+ menu->add_item(vformat(TTR("Add %s"), name), idx);
menu->set_item_metadata(idx, E);
}
Ref<AnimationNode> clipb = EditorSettings::get_singleton()->get_resource_clipboard();
@@ -346,29 +346,21 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv
state_machine_draw->update();
}
- //put ibeam (text cursor) over names to make it clearer that they are editable
if (mm.is_valid()) {
state_machine_draw->grab_focus();
- bool over_text_now = false;
String new_over_node = StringName();
int new_over_node_what = -1;
if (tool_select->is_pressed()) {
- for (int i = node_rects.size() - 1; i >= 0; i--) { //inverse to draw order
-
- if (node_rects[i].name.has_point(mm->get_position())) {
- over_text_now = true;
- break;
- }
-
+ for (int i = node_rects.size() - 1; i >= 0; i--) { // Inverse to draw order.
if (node_rects[i].node.has_point(mm->get_position())) {
new_over_node = node_rects[i].node_name;
if (node_rects[i].play.has_point(mm->get_position())) {
new_over_node_what = 0;
- }
- if (node_rects[i].edit.has_point(mm->get_position())) {
+ } else if (node_rects[i].edit.has_point(mm->get_position())) {
new_over_node_what = 1;
}
+ break;
}
}
}
@@ -378,16 +370,6 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv
over_node_what = new_over_node_what;
state_machine_draw->update();
}
-
- if (over_text != over_text_now) {
- if (over_text_now) {
- state_machine_draw->set_default_cursor_shape(CURSOR_IBEAM);
- } else {
- state_machine_draw->set_default_cursor_shape(CURSOR_ARROW);
- }
-
- over_text = over_text_now;
- }
}
Ref<InputEventPanGesture> pan_gesture = p_event;
@@ -397,6 +379,23 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv
}
}
+Control::CursorShape AnimationNodeStateMachineEditor::get_cursor_shape(const Point2 &p_pos) const {
+ // Put ibeam (text cursor) over names to make it clearer that they are editable.
+ Transform2D xform = panel->get_transform() * state_machine_draw->get_transform();
+ Point2 pos = xform.xform_inv(p_pos);
+ Control::CursorShape cursor_shape = get_default_cursor_shape();
+
+ for (int i = node_rects.size() - 1; i >= 0; i--) { // Inverse to draw order.
+ if (node_rects[i].node.has_point(pos)) {
+ if (node_rects[i].name.has_point(pos)) {
+ cursor_shape = Control::CURSOR_IBEAM;
+ }
+ break;
+ }
+ }
+ return cursor_shape;
+}
+
void AnimationNodeStateMachineEditor::_file_opened(const String &p_file) {
file_loaded = ResourceLoader::load(p_file);
if (file_loaded.is_valid()) {
@@ -1287,6 +1286,7 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() {
panel = memnew(PanelContainer);
panel->set_clip_contents(true);
+ panel->set_mouse_filter(Control::MOUSE_FILTER_PASS);
add_child(panel);
panel->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -1295,6 +1295,7 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() {
state_machine_draw->connect("gui_input", callable_mp(this, &AnimationNodeStateMachineEditor::_state_machine_gui_input));
state_machine_draw->connect("draw", callable_mp(this, &AnimationNodeStateMachineEditor::_state_machine_draw));
state_machine_draw->set_focus_mode(FOCUS_ALL);
+ state_machine_draw->set_mouse_filter(Control::MOUSE_FILTER_PASS);
state_machine_play_pos = memnew(Control);
state_machine_draw->add_child(state_machine_play_pos);
@@ -1347,8 +1348,6 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() {
open_file->connect("file_selected", callable_mp(this, &AnimationNodeStateMachineEditor::_file_opened));
undo_redo = EditorNode::get_undo_redo();
- over_text = false;
-
over_node_what = -1;
dragging_selected_attempt = false;
connecting = false;
diff --git a/editor/plugins/animation_state_machine_editor.h b/editor/plugins/animation_state_machine_editor.h
index 208bd27f8e..03991d00f9 100644
--- a/editor/plugins/animation_state_machine_editor.h
+++ b/editor/plugins/animation_state_machine_editor.h
@@ -138,7 +138,6 @@ class AnimationNodeStateMachineEditor : public AnimationTreeNodeEditorPlugin {
StringName selected_transition_from;
StringName selected_transition_to;
- bool over_text;
StringName over_node;
int over_node_what;
@@ -185,6 +184,7 @@ public:
static AnimationNodeStateMachineEditor *get_singleton() { return singleton; }
virtual bool can_edit(const Ref<AnimationNode> &p_node) override;
virtual void edit(const Ref<AnimationNode> &p_node) override;
+ virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override;
AnimationNodeStateMachineEditor();
};
diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp
index 9e9915cfa4..fd9b665b20 100644
--- a/editor/plugins/asset_library_editor_plugin.cpp
+++ b/editor/plugins/asset_library_editor_plugin.cpp
@@ -44,8 +44,8 @@
static inline void setup_http_request(HTTPRequest *request) {
request->set_use_threads(EDITOR_DEF("asset_library/use_threads", true));
- const String proxy_host = EDITOR_DEF("network/http_proxy/host", "");
- const int proxy_port = EDITOR_DEF("network/http_proxy/port", -1);
+ const String proxy_host = EDITOR_GET("network/http_proxy/host");
+ const int proxy_port = EDITOR_GET("network/http_proxy/port");
request->set_http_proxy(proxy_host, proxy_port);
request->set_https_proxy(proxy_host, proxy_port);
}
@@ -1145,7 +1145,7 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const
String name = cat["name"];
int id = cat["id"];
categories->add_item(name);
- categories->set_item_metadata(categories->get_item_count() - 1, id);
+ categories->set_item_metadata(-1, id);
category_map[cat["id"]] = name;
}
}
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index e43d1feb08..2603d17409 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -489,12 +489,12 @@ void CanvasItemEditor::unhandled_key_input(const Ref<InputEvent> &p_ev) {
viewport->update();
}
- if (k->is_pressed() && !k->is_ctrl_pressed() && !k->is_echo()) {
- if ((grid_snap_active || show_grid) && multiply_grid_step_shortcut.is_valid() && multiply_grid_step_shortcut->matches_event(p_ev)) {
+ if (k->is_pressed() && !k->is_ctrl_pressed() && !k->is_echo() && (grid_snap_active || _is_grid_visible())) {
+ if (multiply_grid_step_shortcut.is_valid() && multiply_grid_step_shortcut->matches_event(p_ev)) {
// Multiply the grid size
grid_step_multiplier = MIN(grid_step_multiplier + 1, 12);
viewport->update();
- } else if ((grid_snap_active || show_grid) && divide_grid_step_shortcut.is_valid() && divide_grid_step_shortcut->matches_event(p_ev)) {
+ } else if (divide_grid_step_shortcut.is_valid() && divide_grid_step_shortcut->matches_event(p_ev)) {
// Divide the grid size
Point2 new_grid_step = grid_step * Math::pow(2.0, grid_step_multiplier - 1);
if (new_grid_step.x >= 1.0 && new_grid_step.y >= 1.0) {
@@ -938,6 +938,60 @@ void CanvasItemEditor::_reset_create_position() {
node_create_position = Point2();
}
+bool CanvasItemEditor::_is_grid_visible() const {
+ switch (grid_visibility) {
+ case GRID_VISIBILITY_SHOW:
+ return true;
+ case GRID_VISIBILITY_SHOW_WHEN_SNAPPING:
+ return grid_snap_active;
+ case GRID_VISIBILITY_HIDE:
+ return false;
+ }
+ ERR_FAIL_V_MSG(true, "Unexpected grid_visibility value");
+}
+
+void CanvasItemEditor::_prepare_grid_menu() {
+ for (int i = GRID_VISIBILITY_SHOW; i <= GRID_VISIBILITY_HIDE; i++) {
+ grid_menu->set_item_checked(i, i == grid_visibility);
+ }
+}
+
+void CanvasItemEditor::_on_grid_menu_id_pressed(int p_id) {
+ switch (p_id) {
+ case GRID_VISIBILITY_SHOW:
+ case GRID_VISIBILITY_SHOW_WHEN_SNAPPING:
+ case GRID_VISIBILITY_HIDE:
+ grid_visibility = (GridVisibility)p_id;
+ viewport->update();
+ view_menu->get_popup()->hide();
+ return;
+ }
+
+ // Toggle grid: go to the least restrictive option possible.
+ if (grid_snap_active) {
+ switch (grid_visibility) {
+ case GRID_VISIBILITY_SHOW:
+ case GRID_VISIBILITY_SHOW_WHEN_SNAPPING:
+ grid_visibility = GRID_VISIBILITY_HIDE;
+ break;
+ case GRID_VISIBILITY_HIDE:
+ grid_visibility = GRID_VISIBILITY_SHOW_WHEN_SNAPPING;
+ break;
+ }
+ } else {
+ switch (grid_visibility) {
+ case GRID_VISIBILITY_SHOW:
+ grid_visibility = GRID_VISIBILITY_SHOW_WHEN_SNAPPING;
+ break;
+ case GRID_VISIBILITY_SHOW_WHEN_SNAPPING:
+ case GRID_VISIBILITY_HIDE:
+ grid_visibility = GRID_VISIBILITY_SHOW;
+ break;
+ }
+ }
+ viewport->update();
+}
+
bool CanvasItemEditor::_gui_input_rulers_and_guides(const Ref<InputEvent> &p_event) {
Ref<InputEventMouseButton> b = p_event;
Ref<InputEventMouseMotion> m = p_event;
@@ -1139,6 +1193,8 @@ bool CanvasItemEditor::_gui_input_rulers_and_guides(const Ref<InputEvent> &p_eve
}
}
}
+ snap_target[0] = SNAP_TARGET_NONE;
+ snap_target[1] = SNAP_TARGET_NONE;
drag_type = DRAG_NONE;
viewport->update();
return true;
@@ -2726,7 +2782,7 @@ void CanvasItemEditor::_draw_rulers() {
// The rule transform
Transform2D ruler_transform = Transform2D();
- if (show_grid || grid_snap_active) {
+ if (grid_snap_active || _is_grid_visible()) {
List<CanvasItem *> selection = _get_edited_canvas_items();
if (snap_relative && selection.size() > 0) {
ruler_transform.translate(_get_encompassing_rect_from_list(selection).position);
@@ -2806,7 +2862,7 @@ void CanvasItemEditor::_draw_rulers() {
}
void CanvasItemEditor::_draw_grid() {
- if (show_grid || grid_snap_active) {
+ if (_is_grid_visible()) {
// Draw the grid
Vector2 real_grid_offset;
const List<CanvasItem *> selection = _get_edited_canvas_items();
@@ -3580,7 +3636,7 @@ void CanvasItemEditor::_draw_locks_and_groups(Node *p_node, const Transform2D &p
return;
}
CanvasItem *canvas_item = Object::cast_to<CanvasItem>(p_node);
- if (canvas_item && !canvas_item->is_visible()) {
+ if (canvas_item && !canvas_item->is_visible_in_tree()) {
return;
}
@@ -4137,12 +4193,6 @@ void CanvasItemEditor::_update_override_camera_button(bool p_game_running) {
void CanvasItemEditor::_popup_callback(int p_op) {
last_option = MenuOption(p_op);
switch (p_op) {
- case SHOW_GRID: {
- show_grid = !show_grid;
- int idx = view_menu->get_popup()->get_item_index(SHOW_GRID);
- view_menu->get_popup()->set_item_checked(idx, show_grid);
- viewport->update();
- } break;
case SHOW_ORIGIN: {
show_origin = !show_origin;
int idx = view_menu->get_popup()->get_item_index(SHOW_ORIGIN);
@@ -4615,7 +4665,7 @@ Dictionary CanvasItemEditor::get_state() const {
state["snap_node_center"] = snap_node_center;
state["snap_other_nodes"] = snap_other_nodes;
state["snap_guides"] = snap_guides;
- state["show_grid"] = show_grid;
+ state["grid_visibility"] = grid_visibility;
state["show_origin"] = show_origin;
state["show_viewport"] = show_viewport;
state["show_rulers"] = show_rulers;
@@ -4717,10 +4767,8 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) {
smartsnap_config_popup->set_item_checked(idx, snap_guides);
}
- if (state.has("show_grid")) {
- show_grid = state["show_grid"];
- int idx = view_menu->get_popup()->get_item_index(SHOW_GRID);
- view_menu->get_popup()->set_item_checked(idx, show_grid);
+ if (state.has("grid_visibility")) {
+ grid_visibility = (GridVisibility)(int)(state["grid_visibility"]);
}
if (state.has("show_origin")) {
@@ -5130,7 +5178,19 @@ CanvasItemEditor::CanvasItemEditor() {
p = view_menu->get_popup();
p->set_hide_on_checkable_item_selection(false);
- p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_grid", TTR("Always Show Grid"), Key::NUMBERSIGN), SHOW_GRID);
+
+ grid_menu = memnew(PopupMenu);
+ grid_menu->connect("about_to_popup", callable_mp(this, &CanvasItemEditor::_prepare_grid_menu));
+ grid_menu->connect("id_pressed", callable_mp(this, &CanvasItemEditor::_on_grid_menu_id_pressed));
+ grid_menu->set_name("GridMenu");
+ grid_menu->add_radio_check_item(TTR("Show"), GRID_VISIBILITY_SHOW);
+ grid_menu->add_radio_check_item(TTR("Show When Snapping"), GRID_VISIBILITY_SHOW_WHEN_SNAPPING);
+ grid_menu->add_radio_check_item(TTR("Hide"), GRID_VISIBILITY_HIDE);
+ grid_menu->add_separator();
+ grid_menu->add_shortcut(ED_SHORTCUT("canvas_item_editor/toggle_grid", TTR("Toggle Grid"), KeyModifierMask::CMD | Key::APOSTROPHE));
+ p->add_child(grid_menu);
+ p->add_submenu_item(TTR("Grid"), "GridMenu");
+
p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_helpers", TTR("Show Helpers"), Key::H), SHOW_HELPERS);
p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_rulers", TTR("Show Rulers")), SHOW_RULERS);
p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_guides", TTR("Show Guides"), Key::Y), SHOW_GUIDES);
diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h
index e7c265ee02..1a9d49a4a8 100644
--- a/editor/plugins/canvas_item_editor_plugin.h
+++ b/editor/plugins/canvas_item_editor_plugin.h
@@ -116,7 +116,6 @@ private:
SNAP_RELATIVE,
SNAP_CONFIGURE,
SNAP_USE_PIXEL,
- SHOW_GRID,
SHOW_HELPERS,
SHOW_RULERS,
SHOW_GUIDES,
@@ -175,6 +174,12 @@ private:
DRAG_KEY_MOVE
};
+ enum GridVisibility {
+ GRID_VISIBILITY_SHOW,
+ GRID_VISIBILITY_SHOW_WHEN_SNAPPING,
+ GRID_VISIBILITY_HIDE,
+ };
+
bool selection_menu_additive_selection;
Tool tool = TOOL_SELECT;
@@ -190,7 +195,7 @@ private:
HBoxContainer *hbc_context_menu;
Transform2D transform;
- bool show_grid = false;
+ GridVisibility grid_visibility = GRID_VISIBILITY_SHOW_WHEN_SNAPPING;
bool show_rulers = true;
bool show_guides = true;
bool show_origin = true;
@@ -314,6 +319,7 @@ private:
MenuButton *skeleton_menu;
Button *override_camera_button;
MenuButton *view_menu;
+ PopupMenu *grid_menu;
HBoxContainer *animation_hb;
MenuButton *animation_menu;
@@ -390,6 +396,9 @@ private:
void _node_created(Node *p_node);
void _reset_create_position();
void _update_editor_settings();
+ bool _is_grid_visible() const;
+ void _prepare_grid_menu();
+ void _on_grid_menu_id_pressed(int p_id);
UndoRedo *undo_redo;
diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp
index 501becac57..c8d5aa3fdc 100644
--- a/editor/plugins/debugger_editor_plugin.cpp
+++ b/editor/plugins/debugger_editor_plugin.cpp
@@ -63,30 +63,24 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(MenuButton *p_debug_menu) {
PopupMenu *p = debug_menu->get_popup();
p->set_hide_on_checkable_item_selection(false);
p->add_check_shortcut(ED_SHORTCUT("editor/deploy_with_remote_debug", TTR("Deploy with Remote Debug")), RUN_DEPLOY_REMOTE_DEBUG);
- p->set_item_tooltip(
- p->get_item_count() - 1,
+ p->set_item_tooltip(-1,
TTR("When this option is enabled, using one-click deploy will make the executable attempt to connect to this computer's IP so the running project can be debugged.\nThis option is intended to be used for remote debugging (typically with a mobile device).\nYou don't need to enable it to use the GDScript debugger locally."));
p->add_check_shortcut(ED_SHORTCUT("editor/small_deploy_with_network_fs", TTR("Small Deploy with Network Filesystem")), RUN_FILE_SERVER);
- p->set_item_tooltip(
- p->get_item_count() - 1,
+ p->set_item_tooltip(-1,
TTR("When this option is enabled, using one-click deploy for Android will only export an executable without the project data.\nThe filesystem will be provided from the project by the editor over the network.\nOn Android, deploying will use the USB cable for faster performance. This option speeds up testing for projects with large assets."));
p->add_separator();
p->add_check_shortcut(ED_SHORTCUT("editor/visible_collision_shapes", TTR("Visible Collision Shapes")), RUN_DEBUG_COLLISONS);
- p->set_item_tooltip(
- p->get_item_count() - 1,
+ p->set_item_tooltip(-1,
TTR("When this option is enabled, collision shapes and raycast nodes (for 2D and 3D) will be visible in the running project."));
p->add_check_shortcut(ED_SHORTCUT("editor/visible_navigation", TTR("Visible Navigation")), RUN_DEBUG_NAVIGATION);
- p->set_item_tooltip(
- p->get_item_count() - 1,
+ p->set_item_tooltip(-1,
TTR("When this option is enabled, navigation meshes and polygons will be visible in the running project."));
p->add_separator();
p->add_check_shortcut(ED_SHORTCUT("editor/sync_scene_changes", TTR("Synchronize Scene Changes")), RUN_LIVE_DEBUG);
- p->set_item_tooltip(
- p->get_item_count() - 1,
+ p->set_item_tooltip(-1,
TTR("When this option is enabled, any changes made to the scene in the editor will be replicated in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled."));
p->add_check_shortcut(ED_SHORTCUT("editor/sync_script_changes", TTR("Synchronize Script Changes")), RUN_RELOAD_SCRIPTS);
- p->set_item_tooltip(
- p->get_item_count() - 1,
+ p->set_item_tooltip(-1,
TTR("When this option is enabled, any script that is saved will be reloaded in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled."));
// Multi-instance, start/stop
diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
index 293d1c3913..35cbff53f4 100644
--- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
@@ -166,20 +166,20 @@ void GPUParticles3DEditorBase::_node_selected(const NodePath &p_path) {
return;
}
- VisualInstance3D *vi = Object::cast_to<VisualInstance3D>(sel);
- if (!vi) {
+ MeshInstance3D *mi = Object::cast_to<MeshInstance3D>(sel);
+ if (!mi || mi->get_mesh().is_null()) {
EditorNode::get_singleton()->show_warning(vformat(TTR("\"%s\" doesn't contain geometry."), sel->get_name()));
return;
}
- geometry = vi->get_faces(VisualInstance3D::FACES_SOLID);
+ geometry = mi->get_mesh()->get_faces();
if (geometry.size() == 0) {
EditorNode::get_singleton()->show_warning(vformat(TTR("\"%s\" doesn't contain face geometry."), sel->get_name()));
return;
}
- Transform3D geom_xform = base_node->get_global_transform().affine_inverse() * vi->get_global_transform();
+ Transform3D geom_xform = base_node->get_global_transform().affine_inverse() * mi->get_global_transform();
int gc = geometry.size();
Face3 *w = geometry.ptrw();
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
index 64540ac157..8f285cb7f9 100644
--- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp
+++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
@@ -447,16 +447,16 @@ MeshInstance3DEditor::MeshInstance3DEditor() {
options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("MeshInstance3D"), SNAME("EditorIcons")));
options->get_popup()->add_item(TTR("Create Trimesh Static Body"), MENU_OPTION_CREATE_STATIC_TRIMESH_BODY);
- options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a StaticBody3D and assigns a polygon-based collision shape to it automatically.\nThis is the most accurate (but slowest) option for collision detection."));
+ options->get_popup()->set_item_tooltip(-1, TTR("Creates a StaticBody3D and assigns a polygon-based collision shape to it automatically.\nThis is the most accurate (but slowest) option for collision detection."));
options->get_popup()->add_separator();
options->get_popup()->add_item(TTR("Create Trimesh Collision Sibling"), MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE);
- options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a polygon-based collision shape.\nThis is the most accurate (but slowest) option for collision detection."));
+ options->get_popup()->set_item_tooltip(-1, TTR("Creates a polygon-based collision shape.\nThis is the most accurate (but slowest) option for collision detection."));
options->get_popup()->add_item(TTR("Create Single Convex Collision Sibling"), MENU_OPTION_CREATE_SINGLE_CONVEX_COLLISION_SHAPE);
- options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a single convex collision shape.\nThis is the fastest (but least accurate) option for collision detection."));
+ options->get_popup()->set_item_tooltip(-1, TTR("Creates a single convex collision shape.\nThis is the fastest (but least accurate) option for collision detection."));
options->get_popup()->add_item(TTR("Create Simplified Convex Collision Sibling"), MENU_OPTION_CREATE_SIMPLIFIED_CONVEX_COLLISION_SHAPE);
- options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a simplified convex collision shape.\nThis is similar to single collision shape, but can result in a simpler geometry in some cases, at the cost of accuracy."));
+ options->get_popup()->set_item_tooltip(-1, TTR("Creates a simplified convex collision shape.\nThis is similar to single collision shape, but can result in a simpler geometry in some cases, at the cost of accuracy."));
options->get_popup()->add_item(TTR("Create Multiple Convex Collision Siblings"), MENU_OPTION_CREATE_MULTIPLE_CONVEX_COLLISION_SHAPES);
- options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a polygon-based collision shape.\nThis is a performance middle-ground between a single convex collision and a polygon-based collision."));
+ options->get_popup()->set_item_tooltip(-1, TTR("Creates a polygon-based collision shape.\nThis is a performance middle-ground between a single convex collision and a polygon-based collision."));
options->get_popup()->add_separator();
options->get_popup()->add_item(TTR("Create Navigation Mesh"), MENU_OPTION_CREATE_NAVMESH);
options->get_popup()->add_separator();
diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp
index 3d40755b7a..41e3471a78 100644
--- a/editor/plugins/mesh_library_editor_plugin.cpp
+++ b/editor/plugins/mesh_library_editor_plugin.cpp
@@ -288,9 +288,9 @@ MeshLibraryEditor::MeshLibraryEditor() {
cd_remove->get_ok_button()->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_remove_confirm));
cd_update = memnew(ConfirmationDialog);
add_child(cd_update);
- cd_update->get_ok_button()->set_text("Apply without Transforms");
+ cd_update->get_ok_button()->set_text(TTR("Apply without Transforms"));
cd_update->get_ok_button()->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_update_confirm), varray(false));
- cd_update->add_button("Apply with Transforms")->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_update_confirm), varray(true));
+ cd_update->add_button(TTR("Apply with Transforms"))->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_update_confirm), varray(true));
}
void MeshLibraryEditorPlugin::edit(Object *p_node) {
@@ -317,7 +317,6 @@ void MeshLibraryEditorPlugin::make_visible(bool p_visible) {
}
MeshLibraryEditorPlugin::MeshLibraryEditorPlugin() {
- EDITOR_DEF("editors/grid_map/preview_size", 64);
mesh_library_editor = memnew(MeshLibraryEditor);
EditorNode::get_singleton()->get_main_control()->add_child(mesh_library_editor);
diff --git a/editor/plugins/multimesh_editor_plugin.cpp b/editor/plugins/multimesh_editor_plugin.cpp
index 72f3b6a06e..850c673c12 100644
--- a/editor/plugins/multimesh_editor_plugin.cpp
+++ b/editor/plugins/multimesh_editor_plugin.cpp
@@ -105,9 +105,9 @@ void MultiMeshEditor::_populate() {
return;
}
- GeometryInstance3D *ss_instance = Object::cast_to<MeshInstance3D>(ss_node);
+ MeshInstance3D *ss_instance = Object::cast_to<MeshInstance3D>(ss_node);
- if (!ss_instance) {
+ if (!ss_instance || !ss_instance->get_mesh().is_valid()) {
err_dialog->set_text(TTR("Surface source is invalid (no geometry)."));
err_dialog->popup_centered();
return;
@@ -115,7 +115,7 @@ void MultiMeshEditor::_populate() {
Transform3D geom_xform = node->get_global_transform().affine_inverse() * ss_instance->get_global_transform();
- Vector<Face3> geometry = ss_instance->get_faces(VisualInstance3D::FACES_SOLID);
+ Vector<Face3> geometry = ss_instance->get_mesh()->get_faces();
if (geometry.size() == 0) {
err_dialog->set_text(TTR("Surface source is invalid (no faces)."));
diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp
index 23f3087553..51e2f6ff00 100644
--- a/editor/plugins/node_3d_editor_gizmos.cpp
+++ b/editor/plugins/node_3d_editor_gizmos.cpp
@@ -876,7 +876,7 @@ EditorNode3DGizmo::~EditorNode3DGizmo() {
/////
void EditorNode3DGizmoPlugin::create_material(const String &p_name, const Color &p_color, bool p_billboard, bool p_on_top, bool p_use_vertex_color) {
- Color instantiated_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/instantiated", Color(0.7, 0.7, 0.7, 0.6));
+ Color instantiated_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/instantiated");
Vector<Ref<StandardMaterial3D>> mats;
@@ -918,7 +918,7 @@ void EditorNode3DGizmoPlugin::create_material(const String &p_name, const Color
}
void EditorNode3DGizmoPlugin::create_icon_material(const String &p_name, const Ref<Texture2D> &p_texture, bool p_on_top, const Color &p_albedo) {
- Color instantiated_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/instantiated", Color(0.7, 0.7, 0.7, 0.6));
+ Color instantiated_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/instantiated");
Vector<Ref<StandardMaterial3D>> icons;
@@ -2251,7 +2251,7 @@ void Position3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
////
PhysicalBone3DGizmoPlugin::PhysicalBone3DGizmoPlugin() {
- create_material("joint_material", EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint", Color(0.5, 0.8, 1)));
+ create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
}
bool PhysicalBone3DGizmoPlugin::has_gizmo(Node3D *p_spatial) {
@@ -2384,7 +2384,7 @@ void PhysicalBone3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
/////
RayCast3DGizmoPlugin::RayCast3DGizmoPlugin() {
- const Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
+ const Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape");
create_material("shape_material", gizmo_color);
const float gizmo_value = gizmo_color.get_v();
const Color gizmo_color_disabled = Color(gizmo_value, gizmo_value, gizmo_value, 0.65);
@@ -2438,7 +2438,7 @@ void SpringArm3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
}
SpringArm3DGizmoPlugin::SpringArm3DGizmoPlugin() {
- Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
+ Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape");
create_material("shape_material", gizmo_color);
}
@@ -2457,7 +2457,7 @@ int SpringArm3DGizmoPlugin::get_priority() const {
/////
VehicleWheel3DGizmoPlugin::VehicleWheel3DGizmoPlugin() {
- Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
+ Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape");
create_material("shape_material", gizmo_color);
}
@@ -2528,7 +2528,7 @@ void VehicleWheel3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
///////////
SoftDynamicBody3DGizmoPlugin::SoftDynamicBody3DGizmoPlugin() {
- Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
+ Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape");
create_material("shape_material", gizmo_color);
create_handle_material("handles");
}
@@ -3177,13 +3177,8 @@ void GPUParticlesCollision3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
continue;
}
- Vector2 dir;
- dir[j] = 1.0;
- Vector2 ta, tb;
int j_n1 = (j + 1) % 3;
int j_n2 = (j + 2) % 3;
- ta[j_n1] = 1.0;
- tb[j_n2] = 1.0;
for (int k = 0; k < 4; k++) {
Vector3 from = aabb.position, to = aabb.position;
@@ -3976,7 +3971,7 @@ void LightmapProbeGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
////
CollisionObject3DGizmoPlugin::CollisionObject3DGizmoPlugin() {
- const Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
+ const Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape");
create_material("shape_material", gizmo_color);
const float gizmo_value = gizmo_color.get_v();
const Color gizmo_color_disabled = Color(gizmo_value, gizmo_value, gizmo_value, 0.65);
@@ -4026,7 +4021,7 @@ void CollisionObject3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
////
CollisionShape3DGizmoPlugin::CollisionShape3DGizmoPlugin() {
- const Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
+ const Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape");
create_material("shape_material", gizmo_color);
const float gizmo_value = gizmo_color.get_v();
const Color gizmo_color_disabled = Color(gizmo_value, gizmo_value, gizmo_value, 0.65);
@@ -4627,7 +4622,7 @@ void CollisionShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
/////
CollisionPolygon3DGizmoPlugin::CollisionPolygon3DGizmoPlugin() {
- const Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
+ const Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape");
create_material("shape_material", gizmo_color);
const float gizmo_value = gizmo_color.get_v();
const Color gizmo_color_disabled = Color(gizmo_value, gizmo_value, gizmo_value, 0.65);
@@ -5024,7 +5019,7 @@ void JointGizmosDrawer::draw_cone(const Transform3D &p_offset, const Basis &p_ba
////
Joint3DGizmoPlugin::Joint3DGizmoPlugin() {
- create_material("joint_material", EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint", Color(0.5, 0.8, 1)));
+ create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
create_material("joint_body_a_material", EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint_body_a", Color(0.6, 0.8, 1)));
create_material("joint_body_b_material", EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint_body_b", Color(0.6, 0.9, 1)));
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index 1731344bd3..a857a7509e 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -2037,14 +2037,16 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
if (ED_IS_SHORTCUT("spatial_editor/cancel_transform", p_event) && _edit.mode != TRANSFORM_NONE) {
cancel_transform();
}
- if (ED_IS_SHORTCUT("spatial_editor/instant_translate", p_event)) {
- begin_transform(TRANSFORM_TRANSLATE, true);
- }
- if (ED_IS_SHORTCUT("spatial_editor/instant_rotate", p_event)) {
- begin_transform(TRANSFORM_ROTATE, true);
- }
- if (ED_IS_SHORTCUT("spatial_editor/instant_scale", p_event)) {
- begin_transform(TRANSFORM_SCALE, true);
+ if (!is_freelook_active()) {
+ if (ED_IS_SHORTCUT("spatial_editor/instant_translate", p_event)) {
+ begin_transform(TRANSFORM_TRANSLATE, true);
+ }
+ if (ED_IS_SHORTCUT("spatial_editor/instant_rotate", p_event)) {
+ begin_transform(TRANSFORM_ROTATE, true);
+ }
+ if (ED_IS_SHORTCUT("spatial_editor/instant_scale", p_event)) {
+ begin_transform(TRANSFORM_SCALE, true);
+ }
}
// Freelook doesn't work in orthogonal mode.
@@ -2284,7 +2286,7 @@ void Node3DEditorViewport::scale_freelook_speed(real_t scale) {
Point2i Node3DEditorViewport::_get_warped_mouse_motion(const Ref<InputEventMouseMotion> &p_ev_mouse_motion) const {
Point2i relative;
- if (bool(EDITOR_DEF("editors/3d/navigation/warped_mouse_panning", false))) {
+ if (bool(EDITOR_GET("editors/3d/navigation/warped_mouse_panning"))) {
relative = Input::get_singleton()->warp_mouse_motion(p_ev_mouse_motion, surface->get_global_rect());
} else {
relative = p_ev_mouse_motion->get_relative();
@@ -2688,27 +2690,27 @@ void Node3DEditorViewport::_notification(int p_what) {
}
}
-static void draw_indicator_bar(Control &surface, real_t fill, const Ref<Texture2D> icon, const Ref<Font> font, int font_size, const String &text) {
+static void draw_indicator_bar(Control &p_surface, real_t p_fill, const Ref<Texture2D> p_icon, const Ref<Font> p_font, int p_font_size, const String &p_text, const Color &p_color) {
// Adjust bar size from control height
- const Vector2 surface_size = surface.get_size();
+ const Vector2 surface_size = p_surface.get_size();
const real_t h = surface_size.y / 2.0;
const real_t y = (surface_size.y - h) / 2.0;
const Rect2 r(10 * EDSCALE, y, 6 * EDSCALE, h);
- const real_t sy = r.size.y * fill;
+ const real_t sy = r.size.y * p_fill;
// Note: because this bar appears over the viewport, it has to stay readable for any background color
// Draw both neutral dark and bright colors to account this
- surface.draw_rect(r, Color(1, 1, 1, 0.2));
- surface.draw_rect(Rect2(r.position.x, r.position.y + r.size.y - sy, r.size.x, sy), Color(1, 1, 1, 0.6));
- surface.draw_rect(r.grow(1), Color(0, 0, 0, 0.7), false, Math::round(EDSCALE));
+ p_surface.draw_rect(r, p_color * Color(1, 1, 1, 0.2));
+ p_surface.draw_rect(Rect2(r.position.x, r.position.y + r.size.y - sy, r.size.x, sy), p_color * Color(1, 1, 1, 0.6));
+ p_surface.draw_rect(r.grow(1), Color(0, 0, 0, 0.7), false, Math::round(EDSCALE));
- const Vector2 icon_size = icon->get_size();
+ const Vector2 icon_size = p_icon->get_size();
const Vector2 icon_pos = Vector2(r.position.x - (icon_size.x - r.size.x) / 2, r.position.y + r.size.y + 2 * EDSCALE);
- surface.draw_texture(icon, icon_pos);
+ p_surface.draw_texture(p_icon, icon_pos, p_color);
// Draw text below the bar (for speed/zoom information).
- surface.draw_string(font, Vector2(icon_pos.x, icon_pos.y + icon_size.y + 16 * EDSCALE), text, HORIZONTAL_ALIGNMENT_LEFT, -1.f, font_size);
+ p_surface.draw_string(p_font, Vector2(icon_pos.x, icon_pos.y + icon_size.y + 16 * EDSCALE), p_text, HORIZONTAL_ALIGNMENT_LEFT, -1.f, p_font_size, p_color, Math::round(2 * EDSCALE), Color(0, 0, 0));
}
void Node3DEditorViewport::_draw() {
@@ -2826,7 +2828,8 @@ void Node3DEditorViewport::_draw() {
get_theme_icon(SNAME("ViewportSpeed"), SNAME("EditorIcons")),
get_theme_font(SNAME("font"), SNAME("Label")),
get_theme_font_size(SNAME("font_size"), SNAME("Label")),
- vformat("%s u/s", String::num(freelook_speed).pad_decimals(precision)));
+ vformat("%s u/s", String::num(freelook_speed).pad_decimals(precision)),
+ Color(1.0, 0.95, 0.7));
}
} else {
@@ -2848,7 +2851,8 @@ void Node3DEditorViewport::_draw() {
get_theme_icon(SNAME("ViewportZoom"), SNAME("EditorIcons")),
get_theme_font(SNAME("font"), SNAME("Label")),
get_theme_font_size(SNAME("font_size"), SNAME("Label")),
- vformat("%s u", String::num(cursor.distance).pad_decimals(precision)));
+ vformat("%s u", String::num(cursor.distance).pad_decimals(precision)),
+ Color(0.7, 0.95, 1.0));
}
}
}
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index f096b2abb1..2812c4aaaf 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -1062,7 +1062,7 @@ void Polygon2DEditor::_uv_draw() {
for (int i = 0; i < uvs.size(); i++) {
int next = uv_draw_max > 0 ? (i + 1) % uv_draw_max : 0;
- if (i < uv_draw_max && uv_drag && uv_move_current == UV_MODE_EDIT_POINT && EDITOR_DEF("editors/polygon_editor/show_previous_outline", true)) {
+ if (i < uv_draw_max && uv_drag && uv_move_current == UV_MODE_EDIT_POINT && EDITOR_GET("editors/polygon_editor/show_previous_outline")) {
uv_edit_draw->draw_line(mtx.xform(points_prev[i]), mtx.xform(points_prev[next]), prev_color, Math::round(EDSCALE));
}
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 827eeababf..2da5978fab 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -682,7 +682,7 @@ void ScriptEditor::_update_recent_scripts() {
recent_scripts->add_shortcut(ED_SHORTCUT("script_editor/clear_recent", TTR("Clear Recent Files")));
recent_scripts->set_item_disabled(recent_scripts->get_item_id(recent_scripts->get_item_count() - 1), rc.is_empty());
- recent_scripts->set_as_minsize();
+ recent_scripts->reset_size();
}
void ScriptEditor::_open_recent_script(int p_idx) {
@@ -1046,7 +1046,7 @@ bool ScriptEditor::_test_script_times_on_disk(RES p_for_script) {
bool need_ask = false;
bool need_reload = false;
- bool use_autoreload = bool(EDITOR_DEF("text_editor/behavior/files/auto_reload_scripts_on_external_change", false));
+ bool use_autoreload = bool(EDITOR_GET("text_editor/behavior/files/auto_reload_scripts_on_external_change"));
for (int i = 0; i < tab_container->get_tab_count(); i++) {
ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i));
@@ -1635,7 +1635,7 @@ void ScriptEditor::_notification(int p_what) {
filename->add_theme_style_override("normal", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox(SNAME("normal"), SNAME("LineEdit")));
- recent_scripts->set_as_minsize();
+ recent_scripts->reset_size();
if (is_inside_tree()) {
_update_script_colors();
@@ -1881,7 +1881,7 @@ void ScriptEditor::_update_members_overview() {
String name = functions[i].get_slice(":", 0);
if (filter.is_empty() || filter.is_subsequence_ofn(name)) {
members_overview->add_item(name);
- members_overview->set_item_metadata(members_overview->get_item_count() - 1, functions[i].get_slice(":", 1).to_int() - 1);
+ members_overview->set_item_metadata(-1, functions[i].get_slice(":", 1).to_int() - 1);
}
}
@@ -2139,7 +2139,7 @@ void ScriptEditor::_update_script_names() {
for (int i = 0; i < sedata_filtered.size(); i++) {
script_list->add_item(sedata_filtered[i].name, sedata_filtered[i].icon);
if (sedata_filtered[i].tool) {
- script_list->set_item_icon_modulate(script_list->get_item_count() - 1, tool_color);
+ script_list->set_item_icon_modulate(-1, tool_color);
}
int index = script_list->get_item_count() - 1;
@@ -2723,7 +2723,7 @@ void ScriptEditor::_editor_settings_changed() {
_update_script_colors();
_update_script_names();
- ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/behavior/files/auto_reload_and_parse_scripts_on_save", true));
+ ScriptServer::set_reload_scripts_on_save(EDITOR_GET("text_editor/behavior/files/auto_reload_and_parse_scripts_on_save"));
}
void ScriptEditor::_filesystem_changed() {
@@ -3125,7 +3125,7 @@ void ScriptEditor::_make_script_list_context_menu() {
}
void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) {
- if (!bool(EDITOR_DEF("text_editor/behavior/files/restore_scripts_on_load", true))) {
+ if (!bool(EDITOR_GET("text_editor/behavior/files/restore_scripts_on_load"))) {
return;
}
@@ -4039,7 +4039,7 @@ ScriptEditorPlugin::ScriptEditorPlugin() {
script_editor->hide();
- EDITOR_DEF("text_editor/behavior/files/auto_reload_scripts_on_external_change", true);
+ EDITOR_GET("text_editor/behavior/files/auto_reload_scripts_on_external_change");
ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/behavior/files/auto_reload_and_parse_scripts_on_save", true));
EDITOR_DEF("text_editor/behavior/files/open_dominant_script_on_scene_change", true);
EDITOR_DEF("text_editor/external/use_external_editor", false);
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index b87f2995ed..30ca1c605f 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -521,7 +521,7 @@ void ScriptTextEditor::_update_errors() {
errors_panel->pop(); // Table
CodeEdit *te = code_editor->get_text_editor();
- bool highlight_safe = EDITOR_DEF("text_editor/appearance/gutters/highlight_type_safe_lines", true);
+ bool highlight_safe = EDITOR_GET("text_editor/appearance/gutters/highlight_type_safe_lines");
bool last_is_safe = false;
for (int i = 0; i < te->get_line_count(); i++) {
if (errors.is_empty()) {
@@ -579,7 +579,7 @@ void ScriptTextEditor::_update_bookmark_list() {
}
bookmarks_menu->add_item(String::num((int)bookmark_list[i] + 1) + " - `" + line + "`");
- bookmarks_menu->set_item_metadata(bookmarks_menu->get_item_count() - 1, bookmark_list[i]);
+ bookmarks_menu->set_item_metadata(-1, bookmark_list[i]);
}
}
@@ -731,7 +731,7 @@ void ScriptTextEditor::_update_breakpoint_list() {
}
breakpoints_menu->add_item(String::num((int)breakpoint_list[i] + 1) + " - `" + line + "`");
- breakpoints_menu->set_item_metadata(breakpoints_menu->get_item_count() - 1, breakpoint_list[i]);
+ breakpoints_menu->set_item_metadata(-1, breakpoint_list[i]);
}
}
@@ -1335,6 +1335,9 @@ void ScriptTextEditor::_change_syntax_highlighter(int p_idx) {
void ScriptTextEditor::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_THEME_CHANGED:
+ if (!editor_enabled) {
+ break;
+ }
if (is_visible_in_tree()) {
_update_warnings();
_update_errors();
diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp
index cea1a0e808..02f11bb82f 100644
--- a/editor/plugins/shader_editor_plugin.cpp
+++ b/editor/plugins/shader_editor_plugin.cpp
@@ -520,7 +520,7 @@ void ShaderEditor::_check_for_external_edit() {
return;
}
- bool use_autoreload = bool(EDITOR_DEF("text_editor/behavior/files/auto_reload_scripts_on_external_change", false));
+ bool use_autoreload = bool(EDITOR_GET("text_editor/behavior/files/auto_reload_scripts_on_external_change"));
if (shader->get_last_modified_time() != FileAccess::get_modified_time(shader->get_path())) {
if (use_autoreload) {
_reload_shader_from_disk();
@@ -647,7 +647,7 @@ void ShaderEditor::_update_bookmark_list() {
}
bookmarks_menu->add_item(String::num((int)bookmark_list[i] + 1) + " - \"" + line + "\"");
- bookmarks_menu->set_item_metadata(bookmarks_menu->get_item_count() - 1, bookmark_list[i]);
+ bookmarks_menu->set_item_metadata(-1, bookmark_list[i]);
}
}
diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp
index 282ee9a5b7..aadc7a2e66 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_3d_editor_plugin.cpp
@@ -530,18 +530,23 @@ void Skeleton3DEditor::_joint_tree_selection_changed() {
TreeItem *selected = joint_tree->get_selected();
if (selected) {
const String path = selected->get_metadata(0);
-
- if (path.begins_with("bones/")) {
- const int b_idx = path.get_slicec('/', 1).to_int();
+ if (!path.begins_with("bones/")) {
+ return;
+ }
+ const int b_idx = path.get_slicec('/', 1).to_int();
+ selected_bone = b_idx;
+ if (pose_editor) {
const String bone_path = "bones/" + itos(b_idx) + "/";
-
pose_editor->set_target(bone_path);
pose_editor->set_keyable(keyable);
- selected_bone = b_idx;
}
}
- pose_editor->set_visible(selected);
+
+ if (pose_editor && pose_editor->is_inside_tree()) {
+ pose_editor->set_visible(selected);
+ }
set_bone_options_enabled(selected);
+
_update_properties();
_update_gizmo_visible();
}
diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp
index c8db16d3be..87b5b829e0 100644
--- a/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -204,15 +204,22 @@ void SpriteFramesEditor::_sheet_scroll_input(const Ref<InputEvent> &p_event) {
// to allow performing this action anywhere, even if the cursor isn't
// hovering the texture in the workspace.
if (mb->get_button_index() == MouseButton::WHEEL_UP && mb->is_pressed() && mb->is_ctrl_pressed()) {
- _sheet_zoom_in();
+ _sheet_zoom_on_position(scale_ratio, mb->get_position());
// Don't scroll up after zooming in.
- accept_event();
+ split_sheet_scroll->accept_event();
} else if (mb->get_button_index() == MouseButton::WHEEL_DOWN && mb->is_pressed() && mb->is_ctrl_pressed()) {
- _sheet_zoom_out();
+ _sheet_zoom_on_position(1 / scale_ratio, mb->get_position());
// Don't scroll down after zooming out.
- accept_event();
+ split_sheet_scroll->accept_event();
}
}
+
+ const Ref<InputEventMouseMotion> mm = p_event;
+ if (mm.is_valid() && (mm->get_button_mask() & MouseButton::MASK_MIDDLE) != MouseButton::NONE) {
+ const Vector2 dragged = Input::get_singleton()->warp_mouse_motion(mm, split_sheet_scroll->get_global_rect());
+ split_sheet_scroll->set_h_scroll(split_sheet_scroll->get_h_scroll() - dragged.x);
+ split_sheet_scroll->set_v_scroll(split_sheet_scroll->get_v_scroll() - dragged.y);
+ }
}
void SpriteFramesEditor::_sheet_add_frames() {
@@ -243,20 +250,25 @@ void SpriteFramesEditor::_sheet_add_frames() {
undo_redo->commit_action();
}
+void SpriteFramesEditor::_sheet_zoom_on_position(float p_zoom, const Vector2 &p_position) {
+ const float old_zoom = sheet_zoom;
+ sheet_zoom = CLAMP(sheet_zoom * p_zoom, min_sheet_zoom, max_sheet_zoom);
+
+ const Size2 texture_size = split_sheet_preview->get_texture()->get_size();
+ split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom);
+
+ Vector2 offset = Vector2(split_sheet_scroll->get_h_scroll(), split_sheet_scroll->get_v_scroll());
+ offset = (offset + p_position) / old_zoom * sheet_zoom - p_position;
+ split_sheet_scroll->set_h_scroll(offset.x);
+ split_sheet_scroll->set_v_scroll(offset.y);
+}
+
void SpriteFramesEditor::_sheet_zoom_in() {
- if (sheet_zoom < max_sheet_zoom) {
- sheet_zoom *= scale_ratio;
- Size2 texture_size = split_sheet_preview->get_texture()->get_size();
- split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom);
- }
+ _sheet_zoom_on_position(scale_ratio, Vector2());
}
void SpriteFramesEditor::_sheet_zoom_out() {
- if (sheet_zoom > min_sheet_zoom) {
- sheet_zoom /= scale_ratio;
- Size2 texture_size = split_sheet_preview->get_texture()->get_size();
- split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom);
- }
+ _sheet_zoom_on_position(1 / scale_ratio, Vector2());
}
void SpriteFramesEditor::_sheet_zoom_reset() {
@@ -310,7 +322,8 @@ void SpriteFramesEditor::_prepare_sprite_sheet(const String &p_file) {
void SpriteFramesEditor::_notification(int p_what) {
switch (p_what) {
- case NOTIFICATION_ENTER_TREE: {
+ case NOTIFICATION_ENTER_TREE:
+ case NOTIFICATION_THEME_CHANGED: {
load->set_icon(get_theme_icon(SNAME("Load"), SNAME("EditorIcons")));
load_sheet->set_icon(get_theme_icon(SNAME("SpriteSheet"), SNAME("EditorIcons")));
copy->set_icon(get_theme_icon(SNAME("ActionCopy"), SNAME("EditorIcons")));
@@ -328,11 +341,9 @@ void SpriteFramesEditor::_notification(int p_what) {
split_sheet_zoom_out->set_icon(get_theme_icon(SNAME("ZoomLess"), SNAME("EditorIcons")));
split_sheet_zoom_reset->set_icon(get_theme_icon(SNAME("ZoomReset"), SNAME("EditorIcons")));
split_sheet_zoom_in->set_icon(get_theme_icon(SNAME("ZoomMore"), SNAME("EditorIcons")));
- [[fallthrough]];
- }
- case NOTIFICATION_THEME_CHANGED: {
split_sheet_scroll->add_theme_style_override("bg", get_theme_stylebox(SNAME("bg"), SNAME("Tree")));
} break;
+
case NOTIFICATION_READY: {
add_theme_constant_override("autohide", 1); // Fixes the dragger always showing up.
} break;
@@ -847,7 +858,7 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) {
at = at->get_atlas();
}
- tree->set_item_tooltip(tree->get_item_count() - 1, tooltip);
+ tree->set_item_tooltip(-1, tooltip);
}
if (sel == i) {
tree->select(tree->get_item_count() - 1);
diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h
index 461c8dd41a..872a88e262 100644
--- a/editor/plugins/sprite_frames_editor_plugin.h
+++ b/editor/plugins/sprite_frames_editor_plugin.h
@@ -143,6 +143,7 @@ class SpriteFramesEditor : public HSplitContainer {
void _sheet_preview_input(const Ref<InputEvent> &p_event);
void _sheet_scroll_input(const Ref<InputEvent> &p_event);
void _sheet_add_frames();
+ void _sheet_zoom_on_position(float p_zoom, const Vector2 &p_position);
void _sheet_zoom_in();
void _sheet_zoom_out();
void _sheet_zoom_reset();
diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp
index 940f269803..34f3ec73c0 100644
--- a/editor/plugins/text_editor.cpp
+++ b/editor/plugins/text_editor.cpp
@@ -179,7 +179,7 @@ void TextEditor::_update_bookmark_list() {
}
bookmarks_menu->add_item(String::num((int)bookmark_list[i] + 1) + " - \"" + line + "\"");
- bookmarks_menu->set_item_metadata(bookmarks_menu->get_item_count() - 1, bookmark_list[i]);
+ bookmarks_menu->set_item_metadata(-1, bookmark_list[i]);
}
}
diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp
index ee31131d86..adb8590246 100644
--- a/editor/plugins/texture_region_editor_plugin.cpp
+++ b/editor/plugins/texture_region_editor_plugin.cpp
@@ -85,8 +85,10 @@ void TextureRegionEditor::_region_draw() {
edit_draw->draw_texture(base_tex, Point2());
RS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(), Transform2D());
+ const Color color = get_theme_color(SNAME("mono_color"), SNAME("Editor"));
+
if (snap_mode == SNAP_GRID) {
- Color grid_color = Color(1.0, 1.0, 1.0, 0.15);
+ const Color grid_color = Color(color.r, color.g, color.b, color.a * 0.15);
Size2 s = edit_draw->get_size();
int last_cell = 0;
@@ -172,7 +174,6 @@ void TextureRegionEditor::_region_draw() {
mtx.basis_xform(raw_endpoints[2]),
mtx.basis_xform(raw_endpoints[3])
};
- Color color = get_theme_color(SNAME("mono_color"), SNAME("Editor"));
for (int i = 0; i < 4; i++) {
int prev = (i + 3) % 4;
int next = (i + 1) % 4;
diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp
index 0f8c8c616c..086588f5a5 100644
--- a/editor/plugins/tiles/atlas_merging_dialog.cpp
+++ b/editor/plugins/tiles/atlas_merging_dialog.cpp
@@ -241,7 +241,7 @@ void AtlasMergingDialog::update_tile_set(Ref<TileSet> p_tile_set) {
if (texture.is_valid()) {
String item_text = vformat("%s (id:%d)", texture->get_path().get_file(), source_id);
atlas_merging_atlases_list->add_item(item_text, texture);
- atlas_merging_atlases_list->set_item_metadata(atlas_merging_atlases_list->get_item_count() - 1, source_id);
+ atlas_merging_atlases_list->set_item_metadata(-1, source_id);
}
}
}
diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp
index 4a0fc0b29f..8d8c65f2c4 100644
--- a/editor/plugins/tiles/tile_map_editor.cpp
+++ b/editor/plugins/tiles/tile_map_editor.cpp
@@ -188,7 +188,7 @@ void TileMapEditorTilesPlugin::_update_tile_set_sources_list() {
}
sources_list->add_item(item_text, texture);
- sources_list->set_item_metadata(sources_list->get_item_count() - 1, source_id);
+ sources_list->set_item_metadata(-1, source_id);
}
if (sources_list->get_item_count() > 0) {
diff --git a/editor/plugins/tiles/tile_set_editor.cpp b/editor/plugins/tiles/tile_set_editor.cpp
index 49e589c9ef..8b0b184f54 100644
--- a/editor/plugins/tiles/tile_set_editor.cpp
+++ b/editor/plugins/tiles/tile_set_editor.cpp
@@ -182,7 +182,7 @@ void TileSetEditor::_update_sources_list(int force_selected_id) {
}
sources_list->add_item(item_text, texture);
- sources_list->set_item_metadata(sources_list->get_item_count() - 1, source_id);
+ sources_list->set_item_metadata(-1, source_id);
}
// Set again the current selected item if needed.
diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp
index a821faf6b3..7f30dd91e5 100644
--- a/editor/plugins/visual_shader_editor_plugin.cpp
+++ b/editor/plugins/visual_shader_editor_plugin.cpp
@@ -555,7 +555,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
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) == ""))) {
+ 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++;
@@ -1074,6 +1074,7 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
hide();
} else {
if (changed) { // to avoid tree collapse
+ _update_varying_tree();
_update_options_menu();
_update_preview();
_update_graph();
@@ -1081,6 +1082,10 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
}
}
+void VisualShaderEditor::update_nodes() {
+ _update_nodes();
+}
+
void VisualShaderEditor::add_plugin(const Ref<VisualShaderNodePlugin> &p_plugin) {
if (plugins.has(p_plugin)) {
return;
@@ -1164,10 +1169,7 @@ bool VisualShaderEditor::_is_available(int p_mode) {
return (p_mode == -1 || (p_mode & current_mode) != 0);
}
-void VisualShaderEditor::update_custom_nodes() {
- if (members_dialog->is_visible()) {
- return;
- }
+void VisualShaderEditor::_update_nodes() {
clear_custom_types();
List<StringName> class_list;
ScriptServer::get_global_class_list(&class_list);
@@ -1183,6 +1185,9 @@ void VisualShaderEditor::update_custom_nodes() {
Ref<VisualShaderNodeCustom> ref;
ref.instantiate();
ref->set_script(script);
+ if (!ref->is_available(visual_shader->get_mode(), visual_shader->get_shader_type())) {
+ continue;
+ }
String name;
if (ref->has_method("_get_name")) {
@@ -1239,6 +1244,32 @@ void VisualShaderEditor::update_custom_nodes() {
}
}
+ // Disables not-supported copied items.
+ {
+ for (CopyItem &item : copy_items_buffer) {
+ Ref<VisualShaderNodeCustom> custom = Object::cast_to<VisualShaderNodeCustom>(item.node.ptr());
+
+ if (custom.is_valid()) {
+ if (!custom->is_available(visual_shader->get_mode(), visual_shader->get_shader_type())) {
+ item.disabled = true;
+ } else {
+ item.disabled = false;
+ }
+ } else {
+ for (int i = 0; i < add_options.size(); i++) {
+ if (add_options[i].type == item.node->get_class_name()) {
+ if ((add_options[i].func != visual_shader->get_mode() && add_options[i].func != -1) || !_is_available(add_options[i].mode)) {
+ item.disabled = true;
+ } else {
+ item.disabled = false;
+ }
+ break;
+ }
+ }
+ }
+ }
+ }
+
Array keys = added.keys();
keys.sort();
@@ -1460,6 +1491,7 @@ void VisualShaderEditor::_set_mode(int p_which) {
edit_type_fog->set_visible(false);
edit_type = edit_type_sky;
custom_mode_box->set_visible(false);
+ varying_button->hide();
mode = MODE_FLAGS_SKY;
} else if (p_which == VisualShader::MODE_FOG) {
edit_type_standard->set_visible(false);
@@ -1468,6 +1500,7 @@ void VisualShaderEditor::_set_mode(int p_which) {
edit_type_fog->set_visible(true);
edit_type = edit_type_fog;
custom_mode_box->set_visible(false);
+ varying_button->hide();
mode = MODE_FLAGS_FOG;
} else if (p_which == VisualShader::MODE_PARTICLES) {
edit_type_standard->set_visible(false);
@@ -1480,6 +1513,7 @@ void VisualShaderEditor::_set_mode(int p_which) {
} else {
custom_mode_box->set_visible(true);
}
+ varying_button->hide();
mode = MODE_FLAGS_PARTICLES;
} else {
edit_type_particles->set_visible(false);
@@ -1488,6 +1522,7 @@ void VisualShaderEditor::_set_mode(int p_which) {
edit_type_fog->set_visible(false);
edit_type = edit_type_standard;
custom_mode_box->set_visible(false);
+ varying_button->show();
mode = MODE_FLAGS_SPATIAL_CANVASITEM;
}
visual_shader->set_shader_type(get_current_shader_type());
@@ -1616,6 +1651,7 @@ void VisualShaderEditor::_update_graph() {
Vector<int> nodes = visual_shader->get_node_list(type);
_update_uniforms(false);
+ _update_varyings();
graph_plugin->clear_links();
graph_plugin->make_dirty(true);
@@ -2778,6 +2814,116 @@ void VisualShaderEditor::_add_node(int p_idx, const Vector<Variant> &p_ops, Stri
}
}
+void VisualShaderEditor::_add_varying(const String &p_name, VisualShader::VaryingMode p_mode, VisualShader::VaryingType p_type) {
+ undo_redo->create_action(vformat(TTR("Add Varying to Visual Shader: %s"), p_name));
+
+ undo_redo->add_do_method(visual_shader.ptr(), "add_varying", p_name, p_mode, p_type);
+ undo_redo->add_undo_method(visual_shader.ptr(), "remove_varying", p_name);
+
+ undo_redo->add_do_method(this, "_update_varyings");
+ undo_redo->add_undo_method(this, "_update_varyings");
+
+ for (int i = 0; i <= VisualShader::TYPE_LIGHT; i++) {
+ if (p_mode == VisualShader::VARYING_MODE_FRAG_TO_LIGHT && i == 0) {
+ continue;
+ }
+
+ VisualShader::Type type = VisualShader::Type(i);
+ Vector<int> nodes = visual_shader->get_node_list(type);
+
+ for (int j = 0; j < nodes.size(); j++) {
+ int node_id = nodes[j];
+ Ref<VisualShaderNode> vsnode = visual_shader->get_node(type, node_id);
+ Ref<VisualShaderNodeVarying> var = vsnode;
+
+ if (var.is_valid()) {
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, node_id);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, node_id);
+ }
+ }
+ }
+
+ undo_redo->add_do_method(this, "_update_varying_tree");
+ undo_redo->add_undo_method(this, "_update_varying_tree");
+ undo_redo->commit_action();
+}
+
+void VisualShaderEditor::_remove_varying(const String &p_name) {
+ undo_redo->create_action(vformat(TTR("Remove Varying from Visual Shader: %s"), p_name));
+
+ VisualShader::VaryingMode mode = visual_shader->get_varying_mode(p_name);
+
+ undo_redo->add_do_method(visual_shader.ptr(), "remove_varying", p_name);
+ undo_redo->add_undo_method(visual_shader.ptr(), "add_varying", p_name, mode, visual_shader->get_varying_type(p_name));
+
+ undo_redo->add_do_method(this, "_update_varyings");
+ undo_redo->add_undo_method(this, "_update_varyings");
+
+ for (int i = 0; i <= VisualShader::TYPE_LIGHT; i++) {
+ if (mode == VisualShader::VARYING_MODE_FRAG_TO_LIGHT && i == 0) {
+ continue;
+ }
+
+ VisualShader::Type type = VisualShader::Type(i);
+ Vector<int> nodes = visual_shader->get_node_list(type);
+
+ for (int j = 0; j < nodes.size(); j++) {
+ int node_id = nodes[j];
+ Ref<VisualShaderNode> vsnode = visual_shader->get_node(type, node_id);
+ Ref<VisualShaderNodeVarying> var = vsnode;
+
+ if (var.is_valid()) {
+ String var_name = var->get_varying_name();
+
+ if (var_name == p_name) {
+ undo_redo->add_do_method(var.ptr(), "set_varying_name", "[None]");
+ undo_redo->add_undo_method(var.ptr(), "set_varying_name", var_name);
+ undo_redo->add_do_method(var.ptr(), "set_varying_type", VisualShader::VARYING_TYPE_FLOAT);
+ undo_redo->add_undo_method(var.ptr(), "set_varying_type", var->get_varying_type());
+ }
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, node_id);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, node_id);
+ }
+ }
+
+ List<VisualShader::Connection> connections;
+ visual_shader->get_node_connections(type, &connections);
+
+ for (VisualShader::Connection &E : connections) {
+ Ref<VisualShaderNodeVaryingGetter> var_getter = Object::cast_to<VisualShaderNodeVaryingGetter>(visual_shader->get_node(type, E.from_node).ptr());
+ if (var_getter.is_valid() && E.from_port > 0) {
+ undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ }
+ Ref<VisualShaderNodeVaryingSetter> var_setter = Object::cast_to<VisualShaderNodeVaryingSetter>(visual_shader->get_node(type, E.to_node).ptr());
+ if (var_setter.is_valid() && E.to_port > 0) {
+ undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ }
+ }
+ }
+
+ undo_redo->add_do_method(this, "_update_varying_tree");
+ undo_redo->add_undo_method(this, "_update_varying_tree");
+ undo_redo->commit_action();
+}
+
+void VisualShaderEditor::_update_varyings() {
+ VisualShaderNodeVarying::clear_varyings();
+
+ for (int i = 0; i < visual_shader->get_varyings_count(); i++) {
+ const VisualShader::Varying *var = visual_shader->get_varying_by_index(i);
+
+ if (var != nullptr) {
+ VisualShaderNodeVarying::add_varying(var->name, var->mode, var->type);
+ }
+ }
+}
+
void VisualShaderEditor::_node_dragged(const Vector2 &p_from, const Vector2 &p_to, int p_node) {
VisualShader::Type type = get_current_shader_type();
drag_buffer.push_back({ type, p_node, p_from, p_to });
@@ -3254,15 +3400,23 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
selected_float_constant = -1;
}
- if (to_change.is_empty() && copy_items_buffer.is_empty()) {
+ bool copy_buffer_empty = true;
+ for (const CopyItem &item : copy_items_buffer) {
+ if (!item.disabled) {
+ copy_buffer_empty = false;
+ break;
+ }
+ }
+
+ if (to_change.is_empty() && copy_buffer_empty) {
_show_members_dialog(true);
} else {
popup_menu->set_item_disabled(NodeMenuOptions::CUT, to_change.is_empty());
popup_menu->set_item_disabled(NodeMenuOptions::COPY, to_change.is_empty());
- popup_menu->set_item_disabled(NodeMenuOptions::PASTE, copy_items_buffer.is_empty());
+ popup_menu->set_item_disabled(NodeMenuOptions::PASTE, copy_buffer_empty);
popup_menu->set_item_disabled(NodeMenuOptions::DELETE, to_change.is_empty());
popup_menu->set_item_disabled(NodeMenuOptions::DUPLICATE, to_change.is_empty());
- popup_menu->set_item_disabled(NodeMenuOptions::CLEAR_COPY_BUFFER, copy_items_buffer.is_empty());
+ popup_menu->set_item_disabled(NodeMenuOptions::CLEAR_COPY_BUFFER, copy_buffer_empty);
int temp = popup_menu->get_item_index(NodeMenuOptions::SEPARATOR2);
if (temp != -1) {
@@ -3364,6 +3518,49 @@ void VisualShaderEditor::_show_members_dialog(bool at_mouse_pos, VisualShaderNod
node_filter->select_all();
}
+void VisualShaderEditor::_show_varying_menu() {
+ varying_options->set_item_disabled(int(VaryingMenuOptions::REMOVE), visual_shader->get_varyings_count() == 0);
+ varying_options->set_position(graph->get_screen_position() + varying_button->get_position() + Size2(0, varying_button->get_size().height));
+ varying_options->popup();
+}
+
+void VisualShaderEditor::_varying_menu_id_pressed(int p_idx) {
+ switch (VaryingMenuOptions(p_idx)) {
+ case VaryingMenuOptions::ADD: {
+ _show_add_varying_dialog();
+ } break;
+ case VaryingMenuOptions::REMOVE: {
+ _show_remove_varying_dialog();
+ } break;
+ default:
+ break;
+ }
+}
+
+void VisualShaderEditor::_show_add_varying_dialog() {
+ _varying_name_changed(varying_name->get_text());
+
+ add_varying_dialog->set_position(graph->get_screen_position() + varying_button->get_position() + Point2(5 * EDSCALE, 65 * EDSCALE));
+ add_varying_dialog->popup();
+
+ // Keep dialog within window bounds.
+ Rect2 window_rect = Rect2(DisplayServer::get_singleton()->window_get_position(), DisplayServer::get_singleton()->window_get_size());
+ Rect2 dialog_rect = Rect2(add_varying_dialog->get_position(), add_varying_dialog->get_size());
+ Vector2 difference = (dialog_rect.get_end() - window_rect.get_end()).max(Vector2());
+ add_varying_dialog->set_position(add_varying_dialog->get_position() - difference);
+}
+
+void VisualShaderEditor::_show_remove_varying_dialog() {
+ remove_varying_dialog->set_position(graph->get_screen_position() + varying_button->get_position() + Point2(5 * EDSCALE, 65 * EDSCALE));
+ remove_varying_dialog->popup();
+
+ // Keep dialog within window bounds.
+ Rect2 window_rect = Rect2(DisplayServer::get_singleton()->window_get_position(), DisplayServer::get_singleton()->window_get_size());
+ Rect2 dialog_rect = Rect2(remove_varying_dialog->get_position(), remove_varying_dialog->get_size());
+ Vector2 difference = (dialog_rect.get_end() - window_rect.get_end()).max(Vector2());
+ remove_varying_dialog->set_position(remove_varying_dialog->get_position() - difference);
+}
+
void VisualShaderEditor::_sbox_input(const Ref<InputEvent> &p_ie) {
Ref<InputEventKey> ie = p_ie;
if (ie.is_valid() && (ie->get_keycode() == Key::UP || ie->get_keycode() == Key::DOWN || ie->get_keycode() == Key::ENTER || ie->get_keycode() == Key::KP_ENTER)) {
@@ -3416,8 +3613,10 @@ void VisualShaderEditor::_notification(int p_what) {
Color function_color = EDITOR_GET("text_editor/theme/highlighting/function_color");
Color number_color = EDITOR_GET("text_editor/theme/highlighting/number_color");
Color members_color = EDITOR_GET("text_editor/theme/highlighting/member_variable_color");
+ Color error_color = get_theme_color(SNAME("error_color"), SNAME("Editor"));
preview_text->add_theme_color_override("background_color", background_color);
+ varying_error_label->add_theme_color_override("font_color", error_color);
for (const String &E : keyword_list) {
if (ShaderLanguage::is_control_flow_keyword(E)) {
@@ -3445,7 +3644,7 @@ void VisualShaderEditor::_notification(int p_what) {
error_panel->add_theme_style_override("panel", get_theme_stylebox(SNAME("panel"), SNAME("Panel")));
error_label->add_theme_font_override("font", get_theme_font(SNAME("status_source"), SNAME("EditorFonts")));
error_label->add_theme_font_size_override("font_size", get_theme_font_size(SNAME("status_source_size"), SNAME("EditorFonts")));
- error_label->add_theme_color_override("font_color", get_theme_color(SNAME("error_color"), SNAME("Editor")));
+ error_label->add_theme_color_override("font_color", error_color);
}
tools->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Tools"), SNAME("EditorIcons")));
@@ -3554,6 +3753,17 @@ void VisualShaderEditor::_dup_paste_nodes(int p_type, List<CopyItem> &r_items, c
if (p_duplicate) {
undo_redo->create_action(TTR("Duplicate VisualShader Node(s)"));
} else {
+ bool copy_buffer_empty = true;
+ for (const CopyItem &item : copy_items_buffer) {
+ if (!item.disabled) {
+ copy_buffer_empty = false;
+ break;
+ }
+ }
+ if (copy_buffer_empty) {
+ return;
+ }
+
undo_redo->create_action(TTR("Paste VisualShader Node(s)"));
}
@@ -3566,16 +3776,7 @@ void VisualShaderEditor::_dup_paste_nodes(int p_type, List<CopyItem> &r_items, c
Set<int> added_set;
for (CopyItem &item : r_items) {
- bool unsupported = false;
- for (int i = 0; i < add_options.size(); i++) {
- if (add_options[i].type == item.node->get_class_name()) {
- if (!_is_available(add_options[i].mode)) {
- unsupported = true;
- }
- break;
- }
- }
- if (unsupported) {
+ if (item.disabled) {
unsupported_set.insert(item.id);
continue;
}
@@ -3616,7 +3817,10 @@ void VisualShaderEditor::_dup_paste_nodes(int p_type, List<CopyItem> &r_items, c
}
id_from = base_id;
- for (int i = 0; i < r_items.size(); i++) {
+ for (const CopyItem &item : r_items) {
+ if (item.disabled) {
+ continue;
+ }
undo_redo->add_undo_method(visual_shader.ptr(), "remove_node", type, id_from);
undo_redo->add_undo_method(graph_plugin.ptr(), "remove_node", type, id_from);
id_from++;
@@ -3717,7 +3921,7 @@ void VisualShaderEditor::_mode_selected(int p_id) {
}
visual_shader->set_shader_type(VisualShader::Type(p_id + offset));
- _update_options_menu();
+ _update_nodes();
_update_graph();
graph->grab_focus();
@@ -3828,6 +4032,75 @@ void VisualShaderEditor::_uniform_select_item(Ref<VisualShaderNodeUniformRef> p_
undo_redo->commit_action();
}
+void VisualShaderEditor::_varying_select_item(Ref<VisualShaderNodeVarying> p_varying, String p_name) {
+ String prev_name = p_varying->get_varying_name();
+
+ if (p_name == prev_name) {
+ return;
+ }
+
+ bool is_getter = Ref<VisualShaderNodeVaryingGetter>(p_varying.ptr()).is_valid();
+
+ UndoRedo *undo_redo = EditorNode::get_singleton()->get_undo_redo();
+ undo_redo->create_action(TTR("Varying Name Changed"));
+
+ undo_redo->add_do_method(p_varying.ptr(), "set_varying_name", p_name);
+ undo_redo->add_undo_method(p_varying.ptr(), "set_varying_name", prev_name);
+
+ VisualShader::VaryingType vtype = p_varying->get_varying_type_by_name(p_name);
+ VisualShader::VaryingType prev_vtype = p_varying->get_varying_type_by_name(prev_name);
+
+ bool type_changed = vtype != prev_vtype;
+
+ if (type_changed) {
+ undo_redo->add_do_method(p_varying.ptr(), "set_varying_type", vtype);
+ undo_redo->add_undo_method(p_varying.ptr(), "set_varying_type", prev_vtype);
+ }
+
+ // update ports
+ for (int type_id = 0; type_id < VisualShader::TYPE_MAX; type_id++) {
+ VisualShader::Type type = VisualShader::Type(type_id);
+ int id = visual_shader->find_node_id(type, p_varying);
+
+ if (id != VisualShader::NODE_ID_INVALID) {
+ if (type_changed) {
+ List<VisualShader::Connection> conns;
+ visual_shader->get_node_connections(type, &conns);
+
+ for (const VisualShader::Connection &E : conns) {
+ if (is_getter) {
+ if (E.from_node == id) {
+ if (visual_shader->is_port_types_compatible(p_varying->get_varying_type_by_name(p_name), visual_shader->get_node(type, E.to_node)->get_input_port_type(E.to_port))) {
+ continue;
+ }
+ undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ }
+ } else {
+ if (E.to_node == id) {
+ if (visual_shader->is_port_types_compatible(p_varying->get_varying_type_by_name(p_name), visual_shader->get_node(type, E.from_node)->get_output_port_type(E.from_port))) {
+ continue;
+ }
+ undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port);
+ }
+ }
+ }
+ }
+
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type_id, id);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type_id, id);
+ break;
+ }
+ }
+
+ undo_redo->commit_action();
+}
+
void VisualShaderEditor::_float_constant_selected(int p_which) {
ERR_FAIL_INDEX(p_which, MAX_FLOAT_CONST_DEFS);
@@ -3882,6 +4155,92 @@ void VisualShaderEditor::_member_cancel() {
from_slot = -1;
}
+void VisualShaderEditor::_update_varying_tree() {
+ varyings->clear();
+ TreeItem *root = varyings->create_item();
+
+ int count = visual_shader->get_varyings_count();
+
+ for (int i = 0; i < count; i++) {
+ const VisualShader::Varying *varying = visual_shader->get_varying_by_index(i);
+
+ if (varying) {
+ TreeItem *item = varyings->create_item(root);
+ item->set_text(0, varying->name);
+
+ if (i == 0) {
+ item->select(0);
+ }
+
+ switch (varying->type) {
+ case VisualShader::VARYING_TYPE_FLOAT:
+ item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("float"), SNAME("EditorIcons")));
+ break;
+ case VisualShader::VARYING_TYPE_VECTOR_2D:
+ item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Vector2"), SNAME("EditorIcons")));
+ break;
+ case VisualShader::VARYING_TYPE_VECTOR_3D:
+ item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Vector3"), SNAME("EditorIcons")));
+ break;
+ case VisualShader::VARYING_TYPE_COLOR:
+ item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Color"), SNAME("EditorIcons")));
+ break;
+ case VisualShader::VARYING_TYPE_TRANSFORM:
+ item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Transform3D"), SNAME("EditorIcons")));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ varying_options->set_item_disabled(int(VaryingMenuOptions::REMOVE), count == 0);
+}
+
+void VisualShaderEditor::_varying_create() {
+ _add_varying(varying_name->get_text(), (VisualShader::VaryingMode)varying_mode->get_selected(), (VisualShader::VaryingType)varying_type->get_selected());
+ add_varying_dialog->hide();
+}
+
+void VisualShaderEditor::_varying_name_changed(const String &p_text) {
+ String name = p_text;
+
+ if (!name.is_valid_identifier()) {
+ varying_error_label->show();
+ varying_error_label->set_text(TTR("Invalid name for varying."));
+ add_varying_dialog->get_ok_button()->set_disabled(true);
+ return;
+ }
+ if (visual_shader->has_varying(name)) {
+ varying_error_label->show();
+ varying_error_label->set_text(TTR("Varying with that name is already exist."));
+ add_varying_dialog->get_ok_button()->set_disabled(true);
+ return;
+ }
+ if (varying_error_label->is_visible()) {
+ varying_error_label->hide();
+ add_varying_dialog->set_size(Size2(add_varying_dialog->get_size().x, 0));
+ }
+ add_varying_dialog->get_ok_button()->set_disabled(false);
+}
+
+void VisualShaderEditor::_varying_deleted() {
+ TreeItem *item = varyings->get_selected();
+
+ if (item != nullptr) {
+ _remove_varying(item->get_text(0));
+ remove_varying_dialog->hide();
+ }
+}
+
+void VisualShaderEditor::_varying_selected() {
+ add_varying_dialog->get_ok_button()->set_disabled(false);
+}
+
+void VisualShaderEditor::_varying_unselected() {
+ add_varying_dialog->get_ok_button()->set_disabled(true);
+}
+
void VisualShaderEditor::_tools_menu_option(int p_idx) {
TreeItem *category = members->get_root()->get_first_child();
@@ -4149,15 +4508,18 @@ void VisualShaderEditor::_visibility_changed() {
}
void VisualShaderEditor::_bind_methods() {
+ ClassDB::bind_method("_update_nodes", &VisualShaderEditor::_update_nodes);
ClassDB::bind_method("_update_graph", &VisualShaderEditor::_update_graph);
- ClassDB::bind_method("_update_options_menu", &VisualShaderEditor::_update_options_menu);
ClassDB::bind_method("_add_node", &VisualShaderEditor::_add_node);
ClassDB::bind_method("_node_changed", &VisualShaderEditor::_node_changed);
ClassDB::bind_method("_input_select_item", &VisualShaderEditor::_input_select_item);
ClassDB::bind_method("_uniform_select_item", &VisualShaderEditor::_uniform_select_item);
+ ClassDB::bind_method("_varying_select_item", &VisualShaderEditor::_varying_select_item);
ClassDB::bind_method("_set_node_size", &VisualShaderEditor::_set_node_size);
ClassDB::bind_method("_clear_copy_buffer", &VisualShaderEditor::_clear_copy_buffer);
ClassDB::bind_method("_update_uniforms", &VisualShaderEditor::_update_uniforms);
+ ClassDB::bind_method("_update_varyings", &VisualShaderEditor::_update_varyings);
+ ClassDB::bind_method("_update_varying_tree", &VisualShaderEditor::_update_varying_tree);
ClassDB::bind_method("_set_mode", &VisualShaderEditor::_set_mode);
ClassDB::bind_method("_nodes_dragged", &VisualShaderEditor::_nodes_dragged);
ClassDB::bind_method("_float_constant_selected", &VisualShaderEditor::_float_constant_selected);
@@ -4284,11 +4646,23 @@ VisualShaderEditor::VisualShaderEditor() {
add_node = memnew(Button);
add_node->set_flat(true);
- graph->get_zoom_hbox()->add_child(add_node);
add_node->set_text(TTR("Add Node..."));
+ graph->get_zoom_hbox()->add_child(add_node);
graph->get_zoom_hbox()->move_child(add_node, 0);
add_node->connect("pressed", callable_mp(this, &VisualShaderEditor::_show_members_dialog), varray(false, VisualShaderNode::PORT_TYPE_MAX, VisualShaderNode::PORT_TYPE_MAX));
+ varying_button = memnew(Button);
+ varying_button->set_flat(true);
+ varying_button->set_text(TTR("Manage Varyings"));
+ graph->get_zoom_hbox()->add_child(varying_button);
+ varying_button->connect("pressed", callable_mp(this, &VisualShaderEditor::_show_varying_menu));
+
+ varying_options = memnew(PopupMenu);
+ add_child(varying_options);
+ varying_options->add_item(TTR("Add Varying"), int(VaryingMenuOptions::ADD));
+ varying_options->add_item(TTR("Remove Varying"), int(VaryingMenuOptions::REMOVE));
+ varying_options->connect("id_pressed", callable_mp(this, &VisualShaderEditor::_varying_menu_id_pressed));
+
preview_shader = memnew(Button);
preview_shader->set_flat(true);
preview_shader->set_toggle_mode(true);
@@ -4412,6 +4786,74 @@ VisualShaderEditor::VisualShaderEditor() {
members_dialog->connect("cancelled", callable_mp(this, &VisualShaderEditor::_member_cancel));
add_child(members_dialog);
+ // add varyings dialog
+ {
+ add_varying_dialog = memnew(ConfirmationDialog);
+ add_varying_dialog->set_title(TTR("Create Shader Varying"));
+ add_varying_dialog->set_exclusive(false);
+ add_varying_dialog->get_ok_button()->set_text(TTR("Create"));
+ add_varying_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_varying_create));
+ add_varying_dialog->get_ok_button()->set_disabled(true);
+ add_child(add_varying_dialog);
+
+ VBoxContainer *vb = memnew(VBoxContainer);
+ add_varying_dialog->add_child(vb);
+
+ HBoxContainer *hb = memnew(HBoxContainer);
+ vb->add_child(hb);
+ hb->set_h_size_flags(SIZE_EXPAND_FILL);
+
+ varying_type = memnew(OptionButton);
+ hb->add_child(varying_type);
+ varying_type->add_item("Float");
+ varying_type->add_item("Vector2");
+ varying_type->add_item("Vector3");
+ varying_type->add_item("Color");
+ varying_type->add_item("Transform");
+
+ varying_name = memnew(LineEdit);
+ hb->add_child(varying_name);
+ varying_name->set_custom_minimum_size(Size2(150 * EDSCALE, 0));
+ varying_name->set_h_size_flags(SIZE_EXPAND_FILL);
+ varying_name->connect("text_changed", callable_mp(this, &VisualShaderEditor::_varying_name_changed));
+
+ varying_mode = memnew(OptionButton);
+ hb->add_child(varying_mode);
+ varying_mode->add_item("Vertex -> [Fragment, Light]");
+ varying_mode->add_item("Fragment -> Light");
+
+ varying_error_label = memnew(Label);
+ vb->add_child(varying_error_label);
+ varying_error_label->set_h_size_flags(SIZE_EXPAND_FILL);
+
+ varying_error_label->hide();
+ }
+
+ // remove varying dialog
+ {
+ remove_varying_dialog = memnew(ConfirmationDialog);
+ remove_varying_dialog->set_title(TTR("Delete Shader Varying"));
+ remove_varying_dialog->set_exclusive(false);
+ remove_varying_dialog->get_ok_button()->set_text(TTR("Delete"));
+ remove_varying_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_varying_deleted));
+ add_child(remove_varying_dialog);
+
+ VBoxContainer *vb = memnew(VBoxContainer);
+ remove_varying_dialog->add_child(vb);
+
+ varyings = memnew(Tree);
+ vb->add_child(varyings);
+ varyings->set_h_size_flags(SIZE_EXPAND_FILL);
+ varyings->set_v_size_flags(SIZE_EXPAND_FILL);
+ varyings->set_hide_root(true);
+ varyings->set_allow_reselect(true);
+ varyings->set_hide_folding(false);
+ varyings->set_custom_minimum_size(Size2(180 * EDSCALE, 200 * EDSCALE));
+ varyings->connect("item_activated", callable_mp(this, &VisualShaderEditor::_varying_deleted));
+ varyings->connect("item_selected", callable_mp(this, &VisualShaderEditor::_varying_selected));
+ varyings->connect("nothing_selected", callable_mp(this, &VisualShaderEditor::_varying_unselected));
+ }
+
alert = memnew(AcceptDialog);
alert->get_label()->set_autowrap_mode(Label::AUTOWRAP_WORD);
alert->get_label()->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER);
@@ -4578,6 +5020,10 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("PointSize", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "point_size"), { "point_size" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Tangent", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_mode, "tangent"), { "tangent" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex"), { "vertex" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("VertexId", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "vertex_id"), { "vertex_id" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ViewIndex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_index"), { "view_index" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ViewMonoLeft", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_mono_left"), { "view_mono_left" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ViewRight", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_right"), { "view_right" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Alpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "alpha"), { "alpha" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Binormal", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "binormal"), { "binormal" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
@@ -4591,6 +5037,9 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("Tangent", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "tangent"), { "tangent" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Vertex", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex"), { "vertex" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("View", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "view"), { "view" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ViewIndex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_index"), { "view_index" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ViewMonoLeft", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_mono_left"), { "view_mono_left" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ViewRight", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_right"), { "view_right" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Albedo", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "albedo"), { "albedo" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Attenuation", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "attenuation"), { "attenuation" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
@@ -4601,6 +5050,7 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("LightColor", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_color"), { "light_color" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Metallic", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "metallic"), { "metallic" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Roughness", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "roughness"), { "roughness" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ShadowAttenuation", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "shadow_attenuation"), { "shadow_attenuation" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Specular", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "specular"), { "specular" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("View", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "view"), { "view" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
@@ -4610,9 +5060,11 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("Canvas", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "canvas"), { "canvas" }, VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
add_options.push_back(AddOption("InstanceCustom", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "instance_custom"), { "instance_custom" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
add_options.push_back(AddOption("InstanceCustomAlpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "instance_custom_alpha"), { "instance_custom_alpha" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("InstanceId", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "instance_id"), { "instance_id" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
add_options.push_back(AddOption("PointSize", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "point_size"), { "point_size" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
add_options.push_back(AddOption("Screen", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "screen"), { "screen" }, VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_mode, "vertex"), { "vertex" }, VisualShaderNode::PORT_TYPE_VECTOR_2D, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("VertexId", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "vertex_id"), { "vertex_id" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
add_options.push_back(AddOption("World", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "world"), { "world" }, VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
add_options.push_back(AddOption("AtLightPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "at_light_pass"), { "at_light_pass" }, VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
@@ -4989,6 +5441,10 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("Expression", "Special", "", "VisualShaderNodeExpression", TTR("Custom Godot Shader Language expression, with custom amount of input and output ports. This is a direct injection of code into the vertex/fragment/light function, do not use it to write the function declarations inside.")));
add_options.push_back(AddOption("GlobalExpression", "Special", "", "VisualShaderNodeGlobalExpression", TTR("Custom Godot Shader Language expression, which is placed on top of the resulted shader. You can place various function definitions inside and call it later in the Expressions. You can also declare varyings, uniforms and constants.")));
add_options.push_back(AddOption("UniformRef", "Special", "", "VisualShaderNodeUniformRef", TTR("A reference to an existing uniform.")));
+ add_options.push_back(AddOption("VaryingGetter", "Special", "", "VisualShaderNodeVaryingGetter", TTR("Get varying parameter."), {}, -1, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("VaryingSetter", "Special", "", "VisualShaderNodeVaryingSetter", TTR("Set varying parameter."), {}, -1, TYPE_FLAGS_VERTEX | TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("VaryingGetter", "Special", "", "VisualShaderNodeVaryingGetter", TTR("Get varying parameter."), {}, -1, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("VaryingSetter", "Special", "", "VisualShaderNodeVaryingSetter", TTR("Set varying parameter."), {}, -1, TYPE_FLAGS_VERTEX | TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
custom_node_option_idx = add_options.size();
@@ -5026,7 +5482,7 @@ void VisualShaderEditorPlugin::make_visible(bool p_visible) {
//editor->animation_panel_make_visible(true);
button->show();
EditorNode::get_singleton()->make_bottom_panel_item_visible(visual_shader_editor);
- visual_shader_editor->update_custom_nodes();
+ visual_shader_editor->update_nodes();
visual_shader_editor->set_process_input(true);
//visual_shader_editor->set_process(true);
} else {
@@ -5102,6 +5558,82 @@ public:
////////////////
+class VisualShaderNodePluginVaryingEditor : public OptionButton {
+ GDCLASS(VisualShaderNodePluginVaryingEditor, OptionButton);
+
+ Ref<VisualShaderNodeVarying> varying;
+
+public:
+ void _notification(int p_what) {
+ if (p_what == NOTIFICATION_READY) {
+ connect("item_selected", callable_mp(this, &VisualShaderNodePluginVaryingEditor::_item_selected));
+ }
+ }
+
+ void _item_selected(int p_item) {
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (editor) {
+ editor->call_deferred(SNAME("_varying_select_item"), varying, get_item_text(p_item));
+ }
+ }
+
+ void setup(const Ref<VisualShaderNodeVarying> &p_varying, VisualShader::Type p_type) {
+ varying = p_varying;
+
+ Ref<Texture2D> type_icon[] = {
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("float"), SNAME("EditorIcons")),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Vector2"), SNAME("EditorIcons")),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Vector3"), SNAME("EditorIcons")),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Color"), SNAME("EditorIcons")),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Transform3D"), SNAME("EditorIcons")),
+ };
+
+ bool is_getter = Ref<VisualShaderNodeVaryingGetter>(p_varying.ptr()).is_valid();
+
+ add_item("[None]");
+
+ int to_select = -1;
+ for (int i = 0, j = 0; i < varying->get_varyings_count(); i++) {
+ VisualShader::VaryingMode mode = varying->get_varying_mode_by_index(i);
+ if (is_getter) {
+ if (mode == VisualShader::VARYING_MODE_FRAG_TO_LIGHT) {
+ if (p_type != VisualShader::TYPE_LIGHT) {
+ j++;
+ continue;
+ }
+ } else {
+ if (p_type != VisualShader::TYPE_FRAGMENT && p_type != VisualShader::TYPE_LIGHT) {
+ j++;
+ continue;
+ }
+ }
+ } else {
+ if (mode == VisualShader::VARYING_MODE_FRAG_TO_LIGHT) {
+ if (p_type != VisualShader::TYPE_FRAGMENT) {
+ j++;
+ continue;
+ }
+ } else {
+ if (p_type != VisualShader::TYPE_VERTEX) {
+ j++;
+ continue;
+ }
+ }
+ }
+ if (varying->get_varying_name() == varying->get_varying_name_by_index(i)) {
+ to_select = i - j + 1;
+ }
+ add_icon_item(type_icon[varying->get_varying_type_by_index(i)], varying->get_varying_name_by_index(i));
+ }
+
+ if (to_select >= 0) {
+ select(to_select);
+ }
+ }
+};
+
+////////////////
+
class VisualShaderNodePluginUniformRefEditor : public OptionButton {
GDCLASS(VisualShaderNodePluginUniformRefEditor, OptionButton);
@@ -5280,18 +5812,24 @@ public:
};
Control *VisualShaderNodePluginDefault::create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node) {
+ Ref<VisualShader> p_shader = Ref<VisualShader>(p_parent_resource.ptr());
+
+ if (p_shader.is_valid() && (p_node->is_class("VisualShaderNodeVaryingGetter") || p_node->is_class("VisualShaderNodeVaryingSetter"))) {
+ VisualShaderNodePluginVaryingEditor *editor = memnew(VisualShaderNodePluginVaryingEditor);
+ editor->setup(p_node, p_shader->get_shader_type());
+ return editor;
+ }
+
if (p_node->is_class("VisualShaderNodeUniformRef")) {
- //create input
- VisualShaderNodePluginUniformRefEditor *uniform_editor = memnew(VisualShaderNodePluginUniformRefEditor);
- uniform_editor->setup(p_node);
- return uniform_editor;
+ VisualShaderNodePluginUniformRefEditor *editor = memnew(VisualShaderNodePluginUniformRefEditor);
+ editor->setup(p_node);
+ return editor;
}
if (p_node->is_class("VisualShaderNodeInput")) {
- //create input
- VisualShaderNodePluginInputEditor *input_editor = memnew(VisualShaderNodePluginInputEditor);
- input_editor->setup(p_node);
- return input_editor;
+ VisualShaderNodePluginInputEditor *editor = memnew(VisualShaderNodePluginInputEditor);
+ editor->setup(p_node);
+ return editor;
}
Vector<StringName> properties = p_node->get_editable_properties();
@@ -5408,8 +5946,24 @@ void EditorPropertyShaderMode::_option_selected(int p_which) {
}
}
- undo_redo->add_do_method(editor, "_update_options_menu");
- undo_redo->add_undo_method(editor, "_update_options_menu");
+ //4. delete varyings (if needed)
+ if (p_which == VisualShader::MODE_PARTICLES || p_which == VisualShader::MODE_SKY || p_which == VisualShader::MODE_FOG) {
+ int var_count = visual_shader->get_varyings_count();
+
+ if (var_count > 0) {
+ for (int i = 0; i < var_count; i++) {
+ const VisualShader::Varying *var = visual_shader->get_varying_by_index(i);
+ undo_redo->add_do_method(visual_shader.ptr(), "remove_varying", var->name);
+ undo_redo->add_undo_method(visual_shader.ptr(), "add_varying", var->name, var->mode, var->type);
+ }
+
+ undo_redo->add_do_method(editor, "_update_varyings");
+ undo_redo->add_undo_method(editor, "_update_varyings");
+ }
+ }
+
+ undo_redo->add_do_method(editor, "_update_nodes");
+ undo_redo->add_undo_method(editor, "_update_nodes");
undo_redo->add_do_method(editor, "_update_graph");
undo_redo->add_undo_method(editor, "_update_graph");
diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h
index 02beba971b..4087fc583c 100644
--- a/editor/plugins/visual_shader_editor_plugin.h
+++ b/editor/plugins/visual_shader_editor_plugin.h
@@ -139,6 +139,8 @@ class VisualShaderEditor : public VBoxContainer {
Ref<VisualShader> visual_shader;
GraphEdit *graph = nullptr;
Button *add_node = nullptr;
+ Button *varying_button = nullptr;
+ PopupMenu *varying_options = nullptr;
Button *preview_shader = nullptr;
OptionButton *edit_type = nullptr;
@@ -169,6 +171,15 @@ class VisualShaderEditor : public VBoxContainer {
PopupMenu *constants_submenu = nullptr;
MenuButton *tools = nullptr;
+ ConfirmationDialog *add_varying_dialog = nullptr;
+ OptionButton *varying_type = nullptr;
+ LineEdit *varying_name = nullptr;
+ OptionButton *varying_mode = nullptr;
+ Label *varying_error_label = nullptr;
+
+ ConfirmationDialog *remove_varying_dialog = nullptr;
+ Tree *varyings = nullptr;
+
PopupPanel *comment_title_change_popup = nullptr;
LineEdit *comment_title_change_edit = nullptr;
@@ -232,6 +243,11 @@ class VisualShaderEditor : public VBoxContainer {
SET_COMMENT_DESCRIPTION,
};
+ enum class VaryingMenuOptions {
+ ADD,
+ REMOVE,
+ };
+
Tree *members = nullptr;
AcceptDialog *alert = nullptr;
LineEdit *node_filter = nullptr;
@@ -241,6 +257,12 @@ class VisualShaderEditor : public VBoxContainer {
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);
+ void _show_varying_menu();
+ void _varying_menu_id_pressed(int p_idx);
+ void _show_add_varying_dialog();
+ void _show_remove_varying_dialog();
+
+ void _update_nodes();
void _update_graph();
struct AddOption {
@@ -291,6 +313,8 @@ class VisualShaderEditor : public VBoxContainer {
void _setup_node(VisualShaderNode *p_node, const Vector<Variant> &p_ops);
void _add_node(int p_idx, const Vector<Variant> &p_ops, String p_resource_path = "", int p_node_idx = -1);
+ void _add_varying(const String &p_name, VisualShader::VaryingMode p_mode, VisualShader::VaryingType p_type);
+ void _remove_varying(const String &p_name);
void _update_options_menu();
void _set_mode(int p_which);
@@ -371,6 +395,7 @@ class VisualShaderEditor : public VBoxContainer {
String group_inputs;
String group_outputs;
String expression;
+ bool disabled = false;
};
void _dup_copy_nodes(int p_type, List<CopyItem> &r_nodes, List<VisualShader::Connection> &r_connections);
@@ -394,6 +419,7 @@ class VisualShaderEditor : public VBoxContainer {
void _input_select_item(Ref<VisualShaderNodeInput> input, String name);
void _uniform_select_item(Ref<VisualShaderNodeUniformRef> p_uniform, String p_name);
+ void _varying_select_item(Ref<VisualShaderNodeVarying> p_varying, String p_name);
void _float_constant_selected(int p_which);
@@ -425,6 +451,13 @@ class VisualShaderEditor : public VBoxContainer {
void _member_create();
void _member_cancel();
+ void _varying_create();
+ void _varying_name_changed(const String &p_text);
+ void _varying_deleted();
+ void _varying_selected();
+ void _varying_unselected();
+ void _update_varying_tree();
+
Vector2 menu_point;
void _node_menu_id_pressed(int p_idx);
@@ -436,6 +469,7 @@ class VisualShaderEditor : public VBoxContainer {
void _update_created_node(GraphNode *node);
void _update_uniforms(bool p_update_refs);
void _update_uniform_refs(Set<String> &p_names);
+ void _update_varyings();
void _visibility_changed();
@@ -444,7 +478,7 @@ protected:
static void _bind_methods();
public:
- void update_custom_nodes();
+ void update_nodes();
void add_plugin(const Ref<VisualShaderNodePlugin> &p_plugin);
void remove_plugin(const Ref<VisualShaderNodePlugin> &p_plugin);
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index 17db955cc7..9963ac0232 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -1128,9 +1128,6 @@ ProjectExportDialog::ProjectExportDialog() {
// Script export parameters.
- updating_script_key = false;
- updating_enc_filters = false;
-
VBoxContainer *sec_vb = memnew(VBoxContainer);
sec_vb->set_name(TTR("Encryption"));
@@ -1153,7 +1150,7 @@ ProjectExportDialog::ProjectExportDialog() {
enc_ex_filters = memnew(LineEdit);
enc_ex_filters->connect("text_changed", callable_mp(this, &ProjectExportDialog::_enc_filters_changed));
sec_vb->add_margin_child(
- TTR("Filters to exclude files/folders\n(comma-separated, e.g: *.stex, *.import, music/*)"),
+ TTR("Filters to exclude files/folders\n(comma-separated, e.g: *.ctex, *.import, music/*)"),
enc_ex_filters);
script_key = memnew(LineEdit);
@@ -1195,8 +1192,6 @@ ProjectExportDialog::ProjectExportDialog() {
// Export buttons, dialogs and errors.
- updating = false;
-
get_cancel_button()->set_text(TTR("Close"));
get_ok_button()->set_text(TTR("Export PCK/ZIP..."));
export_button = add_button(TTR("Export Project..."), !DisplayServer::get_singleton()->get_swap_cancel_ok(), "export");
diff --git a/editor/project_export.h b/editor/project_export.h
index 569563ba55..057fd31168 100644
--- a/editor/project_export.h
+++ b/editor/project_export.h
@@ -71,7 +71,7 @@ private:
CheckButton *runnable;
Button *button_export;
- bool updating;
+ bool updating = false;
AcceptDialog *error_dialog;
ConfirmationDialog *delete_confirm;
@@ -152,8 +152,8 @@ private:
void _update_feature_list();
void _custom_features_changed(const String &p_text);
- bool updating_script_key;
- bool updating_enc_filters;
+ bool updating_script_key = false;
+ bool updating_enc_filters = false;
void _enc_pck_changed(bool p_pressed);
void _enc_directory_changed(bool p_pressed);
void _enc_filters_changed(const String &p_text);
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index 79aed36eeb..35902fd354 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -147,7 +147,7 @@ private:
}
String _test_path() {
- DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
String valid_path, valid_install_path;
if (d->change_dir(project_path->get_text()) == OK) {
valid_path = project_path->get_text();
@@ -165,7 +165,6 @@ private:
if (valid_path.is_empty()) {
set_message(TTR("The path specified doesn't exist."), MESSAGE_ERROR);
- memdelete(d);
get_ok_button()->set_disabled(true);
return "";
}
@@ -179,7 +178,6 @@ private:
if (valid_install_path.is_empty()) {
set_message(TTR("The path specified doesn't exist."), MESSAGE_ERROR, INSTALL_PATH);
- memdelete(d);
get_ok_button()->set_disabled(true);
return "";
}
@@ -194,7 +192,6 @@ private:
unzFile pkg = unzOpen2(valid_path.utf8().get_data(), &io);
if (!pkg) {
set_message(TTR("Error opening package file (it's not in ZIP format)."), MESSAGE_ERROR);
- memdelete(d);
get_ok_button()->set_disabled(true);
unzClose(pkg);
return "";
@@ -215,7 +212,6 @@ private:
if (ret == UNZ_END_OF_LIST_OF_FILE) {
set_message(TTR("Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file."), MESSAGE_ERROR);
- memdelete(d);
get_ok_button()->set_disabled(true);
unzClose(pkg);
return "";
@@ -242,14 +238,12 @@ private:
if (!is_folder_empty) {
set_message(TTR("Please choose an empty folder."), MESSAGE_WARNING, INSTALL_PATH);
- memdelete(d);
get_ok_button()->set_disabled(true);
return "";
}
} else {
set_message(TTR("Please choose a \"project.godot\" or \".zip\" file."), MESSAGE_ERROR);
- memdelete(d);
install_path_container->hide();
get_ok_button()->set_disabled(true);
return "";
@@ -257,7 +251,6 @@ private:
} else if (valid_path.ends_with("zip")) {
set_message(TTR("This directory already contains a Godot project."), MESSAGE_ERROR, INSTALL_PATH);
- memdelete(d);
get_ok_button()->set_disabled(true);
return "";
}
@@ -282,7 +275,6 @@ private:
if (!is_folder_empty) {
set_message(TTR("The selected path is not empty. Choosing an empty folder is highly recommended."), MESSAGE_WARNING);
- memdelete(d);
get_ok_button()->set_disabled(false);
return valid_path;
}
@@ -290,7 +282,6 @@ private:
set_message("");
set_message("", MESSAGE_SUCCESS, INSTALL_PATH);
- memdelete(d);
get_ok_button()->set_disabled(false);
return valid_path;
}
@@ -389,7 +380,7 @@ private:
return;
}
- DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
if (d->change_dir(project_path->get_text()) == OK) {
if (!d->dir_exists(project_name_no_edges)) {
if (d->make_dir(project_name_no_edges) == OK) {
@@ -408,8 +399,6 @@ private:
dialog_error->popup_centered();
}
}
-
- memdelete(d);
}
void _text_changed(const String &p_text) {
@@ -551,14 +540,11 @@ private:
if (path.is_empty() || path == zip_root || !zip_root.is_subsequence_of(path)) {
//
} else if (path.ends_with("/")) { // a dir
-
path = path.substr(0, path.length() - 1);
String rel_path = path.substr(zip_root.length());
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
da->make_dir(dir.plus_file(rel_path));
- memdelete(da);
-
} else {
Vector<uint8_t> data;
data.resize(info.uncompressed_size);
@@ -620,9 +606,8 @@ private:
void _remove_created_folder() {
if (!created_folder_path.is_empty()) {
- DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
d->remove(created_folder_path);
- memdelete(d);
create_dir->set_disabled(false);
created_folder_path = "";
@@ -725,10 +710,9 @@ public:
project_path->set_text(fav_dir);
fdialog->set_current_dir(fav_dir);
} else {
- DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
project_path->set_text(d->get_current_dir());
fdialog->set_current_dir(d->get_current_dir());
- memdelete(d);
}
String proj = TTR("New Game Project");
project_name->set_text(proj);
@@ -1057,6 +1041,8 @@ public:
}
};
+ bool project_opening_initiated;
+
ProjectList();
~ProjectList();
@@ -1136,6 +1122,7 @@ ProjectList::ProjectList() {
add_child(_scroll_children);
_icon_load_index = 0;
+ project_opening_initiated = false;
}
ProjectList::~ProjectList() {
@@ -1818,7 +1805,9 @@ void ProjectList::_panel_input(const Ref<InputEvent> &p_ev, Node *p_hb) {
emit_signal(SNAME(SIGNAL_SELECTION_CHANGED));
- if (!mb->is_ctrl_pressed() && mb->is_double_click()) {
+ // Do not allow opening a project more than once using a single project manager instance.
+ // Opening the same project in several editor instances at once can lead to various issues.
+ if (!mb->is_ctrl_pressed() && mb->is_double_click() && !project_opening_initiated) {
emit_signal(SNAME(SIGNAL_PROJECT_ASK_OPEN));
}
}
@@ -2140,6 +2129,8 @@ void ProjectManager::_open_selected_projects() {
ERR_FAIL_COND(err);
}
+ _project_list->project_opening_initiated = true;
+
_dim_window();
get_tree()->quit();
}
@@ -2404,12 +2395,11 @@ void ProjectManager::_files_dropped(PackedStringArray p_files, int p_screen) {
return;
}
Set<String> folders_set;
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
for (int i = 0; i < p_files.size(); i++) {
String file = p_files[i];
folders_set.insert(da->dir_exists(file) ? file : file.get_base_dir());
}
- memdelete(da);
if (folders_set.size() > 0) {
PackedStringArray folders;
for (Set<String>::Element *E = folders_set.front(); E; E = E->next()) {
@@ -2418,7 +2408,7 @@ void ProjectManager::_files_dropped(PackedStringArray p_files, int p_screen) {
bool confirm = true;
if (folders.size() == 1) {
- DirAccess *dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ DirAccessRef dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
if (dir->change_dir(folders[0]) == OK) {
dir->list_dir_begin();
String file = dir->get_next();
@@ -2430,7 +2420,6 @@ void ProjectManager::_files_dropped(PackedStringArray p_files, int p_screen) {
}
dir->list_dir_end();
}
- memdelete(dir);
}
if (confirm) {
multi_scan_ask->get_ok_button()->disconnect("pressed", callable_mp(this, &ProjectManager::_scan_multiple_folders));
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index 7059509e72..c4019bc22d 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -663,7 +663,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
tab_container->add_child(localization_editor);
autoload_settings = memnew(EditorAutoloadSettings);
- autoload_settings->set_name(TTR("AutoLoad"));
+ autoload_settings->set_name(TTR("Autoload"));
autoload_settings->connect("autoload_changed", callable_mp(this, &ProjectSettingsEditor::queue_save));
tab_container->add_child(autoload_settings);
diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp
index 0282504c70..52fb0d4f4e 100644
--- a/editor/property_editor.cpp
+++ b/editor/property_editor.cpp
@@ -907,7 +907,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
}
}
- if (!is_custom_resource && !ClassDB::can_instantiate(t)) {
+ if (!is_custom_resource && (!ClassDB::can_instantiate(t) || ClassDB::is_virtual(t))) {
continue;
}
@@ -1771,9 +1771,6 @@ void CustomPropertyEditor::_bind_methods() {
}
CustomPropertyEditor::CustomPropertyEditor() {
- read_only = false;
- updating = false;
-
value_vbox = memnew(VBoxContainer);
add_child(value_vbox);
diff --git a/editor/property_editor.h b/editor/property_editor.h
index c4287dc115..73306e0bc2 100644
--- a/editor/property_editor.h
+++ b/editor/property_editor.h
@@ -119,7 +119,7 @@ class CustomPropertyEditor : public PopupPanel {
TextureRect *texture_preview;
ColorPicker *color_picker;
TextEdit *text_edit;
- bool read_only;
+ bool read_only = false;
bool picking_viewport;
GridContainer *checks20gc;
CheckBox *checks20[20];
@@ -132,7 +132,7 @@ class CustomPropertyEditor : public PopupPanel {
Object *owner;
- bool updating;
+ bool updating = false;
PropertyValueEvaluator *evaluator;
diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp
index 453ecb6b24..1ac15a0a9d 100644
--- a/editor/property_selector.cpp
+++ b/editor/property_selector.cpp
@@ -589,7 +589,6 @@ PropertySelector::PropertySelector() {
search_options->connect("cell_selected", callable_mp(this, &PropertySelector::_item_selected));
search_options->set_hide_root(true);
search_options->set_hide_folding(true);
- virtuals_only = false;
help_bit = memnew(EditorHelpBit);
vbc->add_margin_child(TTR("Description:"), help_bit);
diff --git a/editor/property_selector.h b/editor/property_selector.h
index 1e8c6300a0..7e629a847e 100644
--- a/editor/property_selector.h
+++ b/editor/property_selector.h
@@ -56,7 +56,7 @@ class PropertySelector : public ConfirmationDialog {
String base_type;
ObjectID script;
Object *instance;
- bool virtuals_only;
+ bool virtuals_only = false;
Vector<Variant::Type> type_filter;
diff --git a/editor/quick_open.cpp b/editor/quick_open.cpp
index 4e64aba1db..53da945868 100644
--- a/editor/quick_open.cpp
+++ b/editor/quick_open.cpp
@@ -245,8 +245,6 @@ void EditorQuickOpen::_bind_methods() {
}
EditorQuickOpen::EditorQuickOpen() {
- allow_multi_select = false;
-
VBoxContainer *vbc = memnew(VBoxContainer);
vbc->connect("theme_changed", callable_mp(this, &EditorQuickOpen::_theme_changed));
add_child(vbc);
diff --git a/editor/quick_open.h b/editor/quick_open.h
index dc485a7c86..f50f09604c 100644
--- a/editor/quick_open.h
+++ b/editor/quick_open.h
@@ -42,7 +42,7 @@ class EditorQuickOpen : public ConfirmationDialog {
LineEdit *search_box;
Tree *search_options;
StringName base_type;
- bool allow_multi_select;
+ bool allow_multi_select = false;
Vector<String> files;
OAHashMap<String, Ref<Texture2D>> icons;
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 628e7880a1..8d7916685a 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -1535,7 +1535,7 @@ void SceneTreeDock::perform_node_renames(Node *p_base, Map<Node *, NodePath> *p_
}
}
- bool autorename_animation_tracks = bool(EDITOR_DEF("editors/animation/autorename_animation_tracks", true));
+ bool autorename_animation_tracks = bool(EDITOR_GET("editors/animation/autorename_animation_tracks"));
if (autorename_animation_tracks && Object::cast_to<AnimationPlayer>(p_base)) {
AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_base);
@@ -2551,7 +2551,7 @@ void SceneTreeDock::_files_dropped(Vector<String> p_files, NodePath p_to, int p_
menu_properties->clear();
for (const String &p : valid_properties) {
menu_properties->add_item(capitalize ? p.capitalize() : p);
- menu_properties->set_item_metadata(menu_properties->get_item_count() - 1, p);
+ menu_properties->set_item_metadata(-1, p);
}
menu_properties->reset_size();
@@ -3497,8 +3497,6 @@ SceneTreeDock::SceneTreeDock(Node *p_scene_root, EditorSelection *p_editor_selec
menu_subresources->set_name("Sub-Resources");
menu_subresources->connect("id_pressed", callable_mp(this, &SceneTreeDock::_tool_selected), make_binds(false));
menu->add_child(menu_subresources);
- first_enter = true;
- restore_script_editor_on_drag = false;
menu_properties = memnew(PopupMenu);
add_child(menu_properties);
@@ -3512,9 +3510,6 @@ SceneTreeDock::SceneTreeDock(Node *p_scene_root, EditorSelection *p_editor_selec
set_process_input(true);
set_process(true);
- profile_allow_editing = true;
- profile_allow_script_editing = true;
-
EDITOR_DEF("interface/editors/show_scene_tree_root_selection", true);
EDITOR_DEF("interface/editors/derive_script_globals_by_name", true);
EDITOR_DEF("_use_favorites_root_selection", false);
diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h
index 2a98c469dc..938f83725d 100644
--- a/editor/scene_tree_dock.h
+++ b/editor/scene_tree_dock.h
@@ -105,7 +105,7 @@ class SceneTreeDock : public VBoxContainer {
Vector<ObjectID> subresources;
- bool restore_script_editor_on_drag;
+ bool restore_script_editor_on_drag = false;
bool reset_create_dialog = false;
int current_option;
@@ -166,7 +166,7 @@ class SceneTreeDock : public VBoxContainer {
PopupMenu *menu_properties;
ConfirmationDialog *clear_inherit_confirm;
- bool first_enter;
+ bool first_enter = true;
void _create();
void _do_create(Node *p_parent);
@@ -261,8 +261,8 @@ class SceneTreeDock : public VBoxContainer {
void _create_remap_for_node(Node *p_node, Map<RES, RES> &r_remap);
void _create_remap_for_resource(RES p_resource, Map<RES, RES> &r_remap);
- bool profile_allow_editing;
- bool profile_allow_script_editing;
+ bool profile_allow_editing = true;
+ bool profile_allow_script_editing = true;
static void _update_configuration_warning();
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index c6a8a928db..3b8c540592 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -1197,17 +1197,11 @@ void SceneTreeEditor::_bind_methods() {
}
SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_open_instance) {
- connect_to_script_mode = false;
- connecting_signal = false;
undo_redo = nullptr;
- tree_dirty = true;
selected = nullptr;
- marked_selectable = false;
- marked_children_selectable = false;
can_rename = p_can_rename;
can_open_instance = p_can_open_instance;
- display_foreign = false;
editor_selection = nullptr;
if (p_label) {
@@ -1249,11 +1243,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_ope
add_child(warning);
warning->set_title(TTR("Node Configuration Warning!"));
- show_enabled_subscene = false;
-
last_hash = 0;
- pending_test_update = false;
- updating_tree = false;
blocked = 0;
update_timer = memnew(Timer);
diff --git a/editor/scene_tree_editor.h b/editor/scene_tree_editor.h
index f700182681..2466b8576a 100644
--- a/editor/scene_tree_editor.h
+++ b/editor/scene_tree_editor.h
@@ -65,8 +65,8 @@ class SceneTreeEditor : public Control {
AcceptDialog *warning;
bool auto_expand_selected = true;
- bool connect_to_script_mode;
- bool connecting_signal;
+ bool connect_to_script_mode = false;
+ bool connecting_signal = false;
int blocked;
@@ -92,18 +92,18 @@ class SceneTreeEditor : public Control {
bool can_rename;
bool can_open_instance;
- bool updating_tree;
- bool show_enabled_subscene;
+ bool updating_tree = false;
+ bool show_enabled_subscene = false;
void _renamed();
UndoRedo *undo_redo;
Set<Node *> marked;
- bool marked_selectable;
- bool marked_children_selectable;
- bool display_foreign;
- bool tree_dirty;
- bool pending_test_update;
+ bool marked_selectable = false;
+ bool marked_children_selectable = false;
+ bool display_foreign = false;
+ bool tree_dirty = true;
+ bool pending_test_update = false;
static void _bind_methods();
void _cell_button_pressed(Object *p_item, int p_column, int p_id);
diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp
index bf43e11cdb..baafef8639 100644
--- a/editor/script_create_dialog.cpp
+++ b/editor/script_create_dialog.cpp
@@ -247,23 +247,22 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
return TTR("Path is not local.");
}
- DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
- if (d->change_dir(p.get_base_dir()) != OK) {
- memdelete(d);
- return TTR("Base path is invalid.");
+ {
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ if (da->change_dir(p.get_base_dir()) != OK) {
+ return TTR("Base path is invalid.");
+ }
}
- memdelete(d);
- // Check if file exists.
- DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
- if (f->dir_exists(p)) {
- memdelete(f);
- return TTR("A directory with the same name exists.");
- } else if (p_file_must_exist && !f->file_exists(p)) {
- memdelete(f);
- return TTR("File does not exist.");
+ {
+ // Check if file exists.
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ if (da->dir_exists(p)) {
+ return TTR("A directory with the same name exists.");
+ } else if (p_file_must_exist && !da->file_exists(p)) {
+ return TTR("File does not exist.");
+ }
}
- memdelete(f);
// Check file extension.
String extension = p.get_extension();
@@ -556,13 +555,12 @@ void ScriptCreateDialog::_path_changed(const String &p_path) {
}
// Check if file exists.
- DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
String p = ProjectSettings::get_singleton()->localize_path(p_path.strip_edges());
- if (f->file_exists(p)) {
+ if (da->file_exists(p)) {
is_new_script_created = false;
_msg_path_valid(true, TTR("File exists, it will be reused."));
}
- memdelete(f);
is_path_valid = true;
_update_dialog();
@@ -643,7 +641,7 @@ void ScriptCreateDialog::_update_template_menu() {
if (!templates_found.is_empty()) {
if (!separator) {
template_menu->add_separator();
- template_menu->set_item_text(template_menu->get_item_count() - 1, display_name);
+ template_menu->set_item_text(-1, display_name);
separator = true;
}
for (ScriptLanguage::ScriptTemplate &t : templates_found) {
@@ -838,7 +836,7 @@ Vector<ScriptLanguage::ScriptTemplate> ScriptCreateDialog::_get_user_templates(c
String dir_path = p_dir.plus_file(p_object);
- DirAccess *d = DirAccess::open(dir_path);
+ DirAccessRef d = DirAccess::open(dir_path);
if (d) {
d->list_dir_begin();
String file = d->get_next();
@@ -849,7 +847,6 @@ Vector<ScriptLanguage::ScriptTemplate> ScriptCreateDialog::_get_user_templates(c
file = d->get_next();
}
d->list_dir_end();
- memdelete(d);
}
return user_templates;
}
@@ -1029,7 +1026,6 @@ ScriptCreateDialog::ScriptCreateDialog() {
hb->add_child(parent_browse_button);
gc->add_child(memnew(Label(TTR("Inherits:"))));
gc->add_child(hb);
- is_browsing_parent = false;
/* Class Name */
@@ -1040,8 +1036,6 @@ ScriptCreateDialog::ScriptCreateDialog() {
gc->add_child(class_name);
/* Templates */
-
- is_using_templates = true;
gc->add_child(memnew(Label(TTR("Template:"))));
HBoxContainer *template_hb = memnew(HBoxContainer);
template_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -1082,7 +1076,6 @@ ScriptCreateDialog::ScriptCreateDialog() {
Label *label = memnew(Label(TTR("Path:")));
gc->add_child(label);
gc->add_child(hb);
- re_check_path = false;
path_controls[0] = label;
path_controls[1] = hb;
@@ -1119,17 +1112,4 @@ ScriptCreateDialog::ScriptCreateDialog() {
set_hide_on_ok(false);
set_title(TTR("Attach Node Script"));
-
- is_parent_name_valid = false;
- is_class_name_valid = false;
- is_path_valid = false;
-
- has_named_classes = false;
- supports_built_in = false;
- can_inherit_from_file = false;
- is_built_in = false;
- built_in_enabled = true;
- load_enabled = true;
-
- is_new_script_created = true;
}
diff --git a/editor/script_create_dialog.h b/editor/script_create_dialog.h
index 5c0f51812f..d7c43f322c 100644
--- a/editor/script_create_dialog.h
+++ b/editor/script_create_dialog.h
@@ -66,25 +66,23 @@ class ScriptCreateDialog : public ConfirmationDialog {
VBoxContainer *path_vb;
AcceptDialog *alert;
CreateDialog *select_class;
- bool path_valid;
- bool create_new;
- bool is_browsing_parent;
+ bool is_browsing_parent = false;
String template_inactive_message;
String initial_bp;
- bool is_new_script_created;
- bool is_path_valid;
- bool has_named_classes;
- bool supports_built_in;
- bool can_inherit_from_file;
- 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;
+ bool is_new_script_created = true;
+ bool is_path_valid = false;
+ bool has_named_classes = false;
+ bool supports_built_in = false;
+ bool can_inherit_from_file = false;
+ bool is_parent_name_valid = false;
+ bool is_class_name_valid = false;
+ bool is_built_in = false;
+ bool is_using_templates = true;
+ bool built_in_enabled = true;
+ bool load_enabled = true;
int current_language;
int default_language;
- bool re_check_path;
+ bool re_check_path = false;
Control *path_controls[2];
Control *name_controls[2];
diff --git a/editor/translations/af.po b/editor/translations/af.po
index ad1b7ef436..86ed70ec3a 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -1529,6 +1529,11 @@ msgstr "Laai die verstek Bus Uitleg."
msgid "Create a new Bus Layout."
msgstr "Skep 'n nuwe Bus Uitleg."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Oop Oudio-Bus Uitleg"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Ongeldige naam."
@@ -2953,7 +2958,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5727,6 +5732,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Skep Vouer"
@@ -8265,7 +8274,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9197,6 +9211,11 @@ msgstr "Soek Vervanging Hulpbron:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Hulpbron"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Lede"
@@ -9247,6 +9266,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Verander Skikking Waarde-Soort"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Verander Skikking Waarde-Soort"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Laai Verstek"
@@ -9264,7 +9297,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Verander Skikking Waarde-Soort"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9992,18 +10036,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Passendes:"
@@ -12654,6 +12686,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Eienskappe"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13994,6 +14031,9 @@ msgstr "Ongeldige naam."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 29efa92a54..4bccc25d91 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -44,10 +44,10 @@
# أحمد مصطفى الطبراني <eltabaraniahmed@gmail.com>, 2020.
# ChemicalInk <aladdinalkhafaji@gmail.com>, 2020.
# Musab Alasaifer <mousablasefer@gmail.com>, 2020.
-# Yassine Oudjana <y.oudjana@protonmail.com>, 2020.
+# Yassine Oudjana <y.oudjana@protonmail.com>, 2020, 2022.
# bruvzg <bruvzg13@gmail.com>, 2020.
# StarlkYT <mrsstarlkps4@gmail.com>, 2020, 2021.
-# Games Toon <xxtvgoodxx@gmail.com>, 2021.
+# Games Toon <xxtvgoodxx@gmail.com>, 2021, 2022.
# Kareem Abduljaleel <karemjaleel34@gmail.com>, 2021.
# ILG - Game <moegypt277@gmail.com>, 2021.
# Hatim Jamal <hatimjamal8@gmail.com>, 2021.
@@ -55,7 +55,7 @@
# abubakrAlsaab <madeinsudan19@gmail.com>, 2021.
# Hafid Talbi <atalbiie@gmail.com>, 2021.
# Hareth Mohammed <harethpy@gmail.com>, 2021.
-# Mohammed Mubarak <modymu9@gmail.com>, 2021.
+# Mohammed Mubarak <modymu9@gmail.com>, 2021, 2022.
# Spirit <i8bou3@gmail.com>, 2021, 2022.
# TURKYM7MD <turkytb7700@gmail.com>, 2022.
# zeyad majed <zmajd62@gmail.com>, 2022.
@@ -66,7 +66,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: 2022-02-16 08:44+0000\n"
+"PO-Revision-Date: 2022-02-28 15:48+0000\n"
"Last-Translator: Mr.k <mineshtine28546271@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot/ar/>\n"
@@ -76,7 +76,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.11-dev\n"
+"X-Generator: Weblate 4.11.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -85,13 +85,13 @@ msgstr "معامل خاطئ لدالة ()Convert، استخدم احدى الث
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "كان يتوقع سلسلة من الطول 1 (حرف)."
+msgstr "كانت الدالة تتوقع سلسلة-حروف طولها 1 (حرف واحد)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "لا يوجد ما يكفي من البايتات من أجل فك البايتات، أو صيغة غير صحيحة."
+msgstr "ليس هنالك بايتات كافية من أجل فك البايتات، أو الصيغة غير صحيحة."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -103,7 +103,7 @@ msgstr "لا يمكن استخدام self لأن النموذج فارغ (لم
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "معاملات غير صالحة للمشغل ‏⁨%s⁩، ⁨%s⁩‏ و ⁨%s⁩."
+msgstr "معاملات غير صالحة للمشغل %s, %s و %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
@@ -111,11 +111,11 @@ msgstr "فهرس غير صحيح للنوع %s التابع للنوع الأس
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "أسم فهرس غير صحيح '%s' للنوع الأساسي %s"
+msgstr "أسم فهرس غير صالح '%s' للنوع الأساسي %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "معامل غير صالح للإنشاء '%s'"
+msgstr "معامل غير صالح لإنشاء '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
@@ -131,23 +131,23 @@ msgstr "كيلوبايت"
#: core/ustring.cpp
msgid "MiB"
-msgstr "ميجابايت"
+msgstr "ميبي بايت (MiB)"
#: core/ustring.cpp
msgid "GiB"
-msgstr "جيجابايت"
+msgstr "جيبي بايت (GiB)"
#: core/ustring.cpp
msgid "TiB"
-msgstr "تيرابايت"
+msgstr "تيبي بايت (TiB)"
#: core/ustring.cpp
msgid "PiB"
-msgstr "بيتابايت"
+msgstr "بيبي بايت (PiB)"
#: core/ustring.cpp
msgid "EiB"
-msgstr "إكسابايت"
+msgstr "إكسي بايت (EiB)"
#: editor/animation_bezier_editor.cpp
msgid "Free"
@@ -191,72 +191,72 @@ msgstr "تحريك نقاط بيزية"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "تكرار مفاتيح التحريك"
+msgstr "Anim تكرار مفاتيح التحريك"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "أزل مفاتيح التحريك"
+msgstr "Anim أزل مفاتيح التحريك"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "تغيير وقت الإطار الرئيسي للحركة"
+msgstr "Anim تغيير وقت الإطار الرئيسي"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "تغيير إنتقالية الرسوم المتحركة"
+msgstr "Anim تغيير إنتقالية الرسوم المتحركة"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "تحويل تغيير التحريك"
+msgstr "Anim تغيير التحويل"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "تغيير قيمة الإطار الأساسي للحركة"
+msgstr "Anim تغيير قيمة الإطار الرئيسي"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr "نداء تغيير التحريك"
+msgstr "Anim تغيير النداء (Call)"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Time"
-msgstr "وقت الإطار متعدد التغييرات للرسم المتحرك"
+msgstr "Anim تغييرات متعددة لوقت الإطار الرئيسي"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transition"
-msgstr "المراحل الانتقالية للرسم المتحرك متعدد التغييرات"
+msgstr "Anim تغييرات متعددة للمراحل الانتقالية"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transform"
-msgstr "التَحَوّل متعدد التغيير للرسوم المتحركة"
+msgstr "Anim تغييرات متعددة للتحويلات"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Value"
-msgstr "قيمة الإطار متعدد التغييرات للرسم المتحرك"
+msgstr "Anim تغييرات متعددة لقيمة الإطار(ات) الرئيسية"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Call"
-msgstr "استدعاء الرسوم المتحركة متعددة التغيير"
+msgstr "Anime تغييرات متعددة نداء(ات)"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr "تعديل طول عرض الحركة"
+msgstr "تعديل مدة الرسم المتحرك"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr "تعديل رباط عرض الحركة"
+msgstr "تعديل رباط (Loop) الرسم المتحرك"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr "خط الخاصية"
+msgstr "مسار خاصية"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
-msgstr "خط التحريك ثلاثي الأبعاد"
+msgstr "مسار التحويل (تحريك في الأبعاد)"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr "استدعاء أسلوب المسار"
+msgstr "مسار لاستدعاء دالة"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
@@ -264,19 +264,19 @@ msgstr "مسار منحنى بيزيه"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
-msgstr "شريط صبط الصوت"
+msgstr "شريط ضبط الصوت"
#: editor/animation_track_editor.cpp
msgid "Animation Playback Track"
-msgstr "شريط ضبط الحركة"
+msgstr "شريط ضبط حركة الرسم المتحرك (Animation)"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr "مدة الحركة (بالإطارات)"
+msgstr "مدة الرسم المتحرك (بالإطارات)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr "مدة الحركة (بالثواني)"
+msgstr "مدة الرسم المتحرك (بالثواني)"
#: editor/animation_track_editor.cpp
msgid "Add Track"
@@ -300,6 +300,7 @@ msgid "Anim Clips:"
msgstr "مقاطع الرسوم المتحركة:"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Change Track Path"
msgstr "تغيير مسار الطريق"
@@ -309,13 +310,14 @@ msgstr "تمكين/إيقاف هذا المسار."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr "وضع التحديث (كيف يتم تعيين هذه الخاصية)"
+msgstr "وضع التحديث (كيفية تعيين هذه الخاصية)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
msgstr "وضعية الأستيفاء"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
msgstr "وضع التفاف الحلقة (نهاية العشوائية مع بداية الحلقة)"
@@ -341,7 +343,7 @@ msgstr "متقطع"
#: editor/animation_track_editor.cpp
msgid "Trigger"
-msgstr "مُطلق"
+msgstr "تفعيل/أطلاق"
#: editor/animation_track_editor.cpp
msgid "Capture"
@@ -358,7 +360,7 @@ msgstr "خطي"
#: editor/animation_track_editor.cpp
msgid "Cubic"
-msgstr "مكعب"
+msgstr "مكعبي"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
@@ -371,36 +373,35 @@ msgstr "التفاف الحلقة المثبتة"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "أدخل المفتاح"
+msgstr "أدخل مفتاح"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
-msgstr "مفتاح (مفاتيح) المكررة"
+msgstr "تكرار المفتاح (المفاتيح)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add RESET Value(s)"
-msgstr "إضافة %d إطار(ات)"
+msgstr "أضفْ قيمة(قيم) إعادة تعيين (RESET)"
#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
-msgstr "مفتاح الحذف()"
+msgstr "حذف المفتاح (المفاتيح)"
#: editor/animation_track_editor.cpp
msgid "Change Animation Update Mode"
-msgstr "تغيير وضع تحديث الحركة"
+msgstr "تغيير وضع التحديث للرسم المتحرك"
#: editor/animation_track_editor.cpp
msgid "Change Animation Interpolation Mode"
-msgstr "تغيير وضع عقدة الحركة"
+msgstr "تغيير وضع التفسير (Interpolation) للرسم المتحرك"
#: editor/animation_track_editor.cpp
msgid "Change Animation Loop Mode"
-msgstr "تغيير وضع عقدة الحركة"
+msgstr "تغيير وضع عقدة الرسم المتحرك"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
-msgstr "حذف مسار التحريك"
+msgstr "إزالة مسار التحريك"
#. TRANSLATORS: %s will be replaced by a phrase describing the target of track.
#: editor/animation_track_editor.cpp
@@ -426,21 +427,22 @@ msgstr "أنشئ"
#: editor/animation_track_editor.cpp
msgid "Anim Insert"
-msgstr "إدخال حركة"
+msgstr "Anim إدخال حركة"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
msgid "node '%s'"
-msgstr "وحدة '%s'"
+msgstr "الوحدة '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
msgid "animation"
-msgstr "رسوم متحركة"
+msgstr "رسم متحرك"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
-msgstr "اللأعب المتحرك لا يستطيع تحريك نفسه ,فقط اللاعبين الآخرين."
+msgstr ""
+"لاعب-التحريك (AnimationPlayer) لا يستطيع تحريك نفسه ,فقط اللاعبين الآخرين."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
@@ -449,15 +451,15 @@ msgstr "الخاصية '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
-msgstr "أنشي حركة وأدخلها"
+msgstr "Anim أنشئ وأضفْ"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr "أنشي مسار حركة و مفتاح"
+msgstr "Anim أضفْ مسار حركة و مفتاح"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Key"
-msgstr "أضف مفتاح الحركة"
+msgstr "Anim أضفْ مفتاح الحركة"
#: editor/animation_track_editor.cpp
msgid "Change Animation Step"
@@ -469,7 +471,7 @@ msgstr "إعادة ترتيب المسارات"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr "تنطبق مسارات التحويل فقط على الحيز المكاني."
+msgstr "تنطبق مسارات التحويل فقط على وحدات الحيز المكاني."
#: editor/animation_track_editor.cpp
msgid ""
@@ -478,18 +480,18 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
-"يمكن للمسارات الصوتية أن تشير فقط إلى حيز الكتابة:\n"
-"-الصوت الجاري للأعب\n"
-"-الصوت الجاري للأعب ثنائي الأبعاد\n"
-"-الصوت الجاري للأعب ثلاثي الأبعاد"
+"يمكن للمسارات الصوتية فقط أن تشير إلى وحدات بنوع:\n"
+"-لاعب الصوت الجاري\n"
+"-لاعب الصوت الجاري للحيز ثنائي الأبعاد\n"
+"-لاعب الصوت الجاري للحيز ثلاثي الأبعاد"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr "مسارات الحركة يمكنها فقط أن تشير إلى عُقد مشغّل الحركة."
+msgstr "مسارات الحركة يمكنها فقط أن تشير إلى وحدات مشغّل الرسوم المتحركة."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr "لا يمكن إضافة مقطع جديد بدون جذر"
+msgstr "لا يمكن إضافة مقطع جديد بدون جذر (root)"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
@@ -509,11 +511,11 @@ msgstr "المقطع ليس من نوع مكاني (Spatial), لا يمكن إض
#: editor/animation_track_editor.cpp
msgid "Add Transform Track Key"
-msgstr "أضف مفتاح مقطع المتحول (Transform)"
+msgstr "أضفْ مفتاح لمقطع التحويل (Transform Track)"
#: editor/animation_track_editor.cpp
msgid "Add Track Key"
-msgstr "أضف مفتاح المقطع"
+msgstr "أضفْ مفتاح المقطع"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
@@ -521,15 +523,15 @@ msgstr "مسار المقطع غير صالح, إذن لا يمكن إضافة
#: editor/animation_track_editor.cpp
msgid "Add Method Track Key"
-msgstr "أضف مفتاح مقطع الدالة"
+msgstr "أضْف مفتاح لمقطع الدالة (Method Track)"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
-msgstr "دالة لم توجد في شيئ: "
+msgstr "دالة لم توجد في الكائن: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
-msgstr "مفتاح حركة التحريك"
+msgstr "Anim تحريك المفاتيح"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -542,7 +544,7 @@ msgstr "لصق المقاطع"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
-msgstr "مفتاح تكبير حركة"
+msgstr "Anim تكبير المفاتيح"
#: editor/animation_track_editor.cpp
msgid ""
@@ -550,9 +552,8 @@ msgid ""
msgstr "هذا الخيار لا يعمل لتعديل منحنى بيزر (Bezier), لأنه فقط مقطع واحد."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Add RESET Keys"
-msgstr "مفتاح تكبير حركة"
+msgstr "Anim إضافة مفاتيح إعادة تعيين (RESET Keys)"
#: editor/animation_track_editor.cpp
msgid ""
@@ -566,13 +567,13 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
-"هذه الحركة (رسوم متحركة) تنتمي الى مشهد مستورد، لذا فإن أي تغييرات في "
-"المسارات المستوردة لن يتم حفظها.\n"
+"هذه الرسوم المتحركة تنتمي الى مشهد مستورد، لذا فإن أي تغييرات في المسارات "
+"المستوردة لن يتم حفظها.\n"
"\n"
"لتشغيل الامكانية لإضافة مسارات خاصة، انتقل إلى إعدادات استيراد المشهد واضبط "
"\"رسوم متحركة > تخزين\" إلى \"ملفات\"،\n"
"شغل \"رسوم متحركة > أحتفظ بالمقاطع (المسارات) المخصصة\"، ثم اعد الاستيراد.\n"
-"يمكنك ايضاً استخدام إعدادات استيراد مسبقة تقوم باستيراد الرسم المتحرك الى "
+"يمكنك ايضاً استخدام إعدادات استيراد مسبقة تقوم باستيراد الرسوم المتحركة الى "
"ملفات متفرقة."
#: editor/animation_track_editor.cpp
@@ -584,6 +585,7 @@ msgid "Select an AnimationPlayer node to create and edit animations."
msgstr "اختر مشغل الرسم المتحرك من شجرة المشهد لكي تنشئ أو تعدل الحركة."
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Only show tracks from nodes selected in tree."
msgstr "فقط قم بتبين المقاطع من العقد (Nodes) المحددة في الشجرة."
@@ -678,7 +680,7 @@ msgstr "إستعمل منحنيات بيزر"
#: editor/animation_track_editor.cpp
msgid "Create RESET Track(s)"
-msgstr "إنشاء مسار/ات إعادة التعيين (RESET)"
+msgstr "إنشاء مسار(ات) إعادة التعيين (RESET)"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -1127,8 +1129,8 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"هل تريد حذف الملفات المحددة من المشروع؟ (لا يمكن التراجع.)\n"
-"إستنادًا إلى نظام تشغيل جهازك, قد يتم نقل الملفات إلى سلة المهملات أو حذفها "
+"هل تريد حذف الملفات المحددة من المشروع؟ (لا يمكن استعادتها.)\n"
+"حسب إِعدادات مُدير ملفات نظام تشغيلك, سيتم نقلها إلى سلة المهملات أو ستحذف "
"نهائيًا."
#: editor/dependency_editor.cpp
@@ -1139,10 +1141,10 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"الملفات التي يتم إزالتها مطلوبة من قبل موارد أخرى من اجل أَن تعمل.\n"
-"هل تريد إزالتها على أي حال؟ (لا تراجع).\n"
-"حسب إِعدادات مُدير ملفاتِك, إِما سيتم نقل الملقات إِلى سلة المُهملات أَو سيتم حذفها "
-"نهائياً."
+"الملفات التي يتم إزالتها هي مطلوبة من قبل موارد أخرى لكي تعمل.\n"
+"هل تريد إزالتها على أي حال؟ (لا يمكن التراجع).\n"
+"اعتماداً على إِعدادات مُدير ملفات نظام تشغيلك, سيتم نقلها إِلى سلة المُهملات أَو "
+"سيتم حذفها نهائياً."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1313,7 +1315,7 @@ msgstr "تراخيص"
#: editor/editor_asset_installer.cpp
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "حدث خطأ عندفتح ملف %s الحزمة بسبب أن الملف ليس في صيغة \"ZIP\"."
+msgstr "حدث خطأ عند فتح ملف الحزمة لـ \"%s\" (لأنه ليس بصيغة ZIP) ."
#: editor/editor_asset_installer.cpp
msgid "%s (already exists)"
@@ -1527,6 +1529,11 @@ msgstr "تحميل نسق المسار الإفتراضي."
msgid "Create a new Bus Layout."
msgstr "أنشئ نسق مسار جديد."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "إفتح نسق مسار الصوت"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "اسم غير صالح."
@@ -1787,7 +1794,7 @@ msgstr "رصيف العُقد"
#: editor/editor_feature_profile.cpp
msgid "FileSystem Dock"
-msgstr "إرساء نظام الملفات"
+msgstr "رصيف نظام الملفات"
#: editor/editor_feature_profile.cpp
msgid "Import Dock"
@@ -2150,12 +2157,11 @@ msgstr "التعليمات على الإنترنت"
#: editor/editor_help.cpp
msgid "Properties"
-msgstr "خاصيات"
+msgstr "خصائص"
#: editor/editor_help.cpp
-#, fuzzy
msgid "overrides %s:"
-msgstr "يتجاوز s%:"
+msgstr "يتجاوز %s:"
#: editor/editor_help.cpp
msgid "default:"
@@ -2163,7 +2169,7 @@ msgstr "الافتراضي:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "طرق"
+msgstr "دوال"
#: editor/editor_help.cpp
msgid "Theme Properties"
@@ -2296,14 +2302,13 @@ msgid "Property:"
msgstr "خاصية:"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Pin value"
-msgstr "(القيمة)"
+msgstr "القيمة المثبتة"
#: editor/editor_inspector.cpp
msgid ""
"Pinning a value forces it to be saved even if it's equal to the default."
-msgstr "تثبيت القيمةيجْبرَهٌ حتي لو كانت تساوي القيمة الإفتراضية."
+msgstr "تثبيت القيمة يجْبِرَهُ على حفظها حتى لو كانت تساوي القيمة الإفتراضية."
#: editor/editor_inspector.cpp
msgid "Pin value [Disabled because '%s' is editor-only]"
@@ -2337,9 +2342,8 @@ msgid "Paste Property"
msgstr "لصق ال"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Copy Property Path"
-msgstr "نسخ مسار النص البرمجي"
+msgstr "نسخ مسار الخاصية"
#: editor/editor_log.cpp
msgid "Output:"
@@ -2495,7 +2499,7 @@ msgstr "ينشئ الصورة المصغرة"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
-msgstr "هذه العملية لا يمكنها الإكتمال من غير شجرة رئيسة."
+msgstr "هذه العميلة لا يمكن إجرائها من غير جذر رئيسي."
#: editor/editor_node.cpp
msgid ""
@@ -2554,17 +2558,16 @@ msgid ""
"option and delete the Default layout."
msgstr ""
"تم تجاوز اعدادات المحرر الاساسيه.\n"
-"لإستعادة اعدادات المحرر, اذهب إلى خيار 'Delete Layout' من ثم إحفظ الاعدادات "
-"الاساسيه."
+"لإستعادة اعدادات المحررالأساسية, اذهب إلى خيار 'Delete Layout' من ثم أزل "
+"الاعدادات الاساسيه."
#: editor/editor_node.cpp
msgid "Layout name not found!"
msgstr "إسم النسق غير موجود!"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Restored the Default layout to its base settings."
-msgstr "إسترجاع النسق الإفتراضي إلي الإعدادات الأساسية."
+msgstr "تم إسترجاع النسق الإفتراضي (Default layout) لاعدادتهِ الأساسية."
#: editor/editor_node.cpp
msgid ""
@@ -2667,11 +2670,12 @@ msgstr ""
"عموما."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"A root node is required to save the scene. You can add a root node using the "
"Scene tree dock."
-msgstr "يتطلب حفظ المشهد توافر عُقدة رئيسة."
+msgstr ""
+"يتطلب حفظ المشهد توافر وحدة رئيسة. يمكنك إضافة وحدة رئيسية من خلال رصيف شجرة "
+"المشهد."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2815,7 +2819,7 @@ msgid ""
msgstr ""
"غير قادر علي تحميل النص البرمجي للإضافة من المسار: '%s'. يبدو أنه يوجد خطأ "
"في ذلك النص البرمجي.\n"
-"تعطيل الإضافة في '%s' كي لا تحصل أخطاء."
+"تعطيل الإضافة في '%s' لتجنب الأخطاء لاحقاً."
#: editor/editor_node.cpp
msgid ""
@@ -2955,7 +2959,7 @@ msgstr "تمكين/إيقاف الوضع الخالي من الإلهاء."
msgid "Add a new scene."
msgstr "إضافة مشهد جديد."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "مشهد"
@@ -3040,15 +3044,15 @@ msgstr "إعدادات المشروع..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control"
-msgstr "التحكم بالإصدار"
+msgstr "إدارة الإصدارات (Version Control)"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Set Up Version Control"
-msgstr "إعداد التحكم بالنسخة"
+msgstr "إعداد إدارة الإصدارات (Version Control)"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
-msgstr "إطفاء التحكم بالنسخة Version Control"
+msgstr "إطفاء إدارة الإصدارات (Version Control)"
#: editor/editor_node.cpp
msgid "Export..."
@@ -3059,9 +3063,8 @@ msgid "Install Android Build Template..."
msgstr "تحميل قالب البناء للأندرويد..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open User Data Folder"
-msgstr "فتح مجلّد بيانات المحرّر"
+msgstr "إفتح مجلّد بيانات المستخدم"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
@@ -3069,12 +3072,11 @@ msgstr "أدوات"
#: editor/editor_node.cpp
msgid "Orphan Resource Explorer..."
-msgstr "متصفح الموارد أورفان..."
+msgstr "متصفح الموارد اليتيمة..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "إعادة تسمية المشروع"
+msgstr "إعادة تحميل/تشغيل المشروع الحالي"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3107,7 +3109,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Small Deploy with Network Filesystem"
-msgstr "نشر مصغر مع نظام ملفات الشبكة"
+msgstr "نشر صغير مع نظام ملفات الشبكة"
#: editor/editor_node.cpp
msgid ""
@@ -3183,7 +3185,6 @@ msgid "Synchronize Script Changes"
msgstr "مزامنة تغييرات النص البرمجي"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"When this option is enabled, any script that is saved will be reloaded in "
"the running project.\n"
@@ -3192,8 +3193,8 @@ msgid ""
msgstr ""
"حينما يكون هذا الإعداد مُفعل، أي نص برمجي يتم حفظه سيتم إعادة تحميله في "
"اللعبة العاملة.\n"
-"حينما يتم إستخدامه عن بُعد على جهاز، سيكون هذا أكثر فعالية مع نظام شبكات "
-"الملفات."
+"حينما يتم إستخدامه عن بُعد على جهاز، سيكون أكثر كفاءتاً عند تفعيل إعداد نظام "
+"ملفات الشبكة."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -3244,9 +3245,8 @@ msgid "Help"
msgstr "مساعدة"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "فتح الوثائق"
+msgstr "الوثائق الإلكترونية"
#: editor/editor_node.cpp
msgid "Questions & Answers"
@@ -3269,9 +3269,8 @@ msgid "Community"
msgstr "المجتمع"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "حول"
+msgstr "حول غو-دوت"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3287,7 +3286,7 @@ msgstr "تشغيل"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
-msgstr "إيقاف المشهد الحالي من أجل المعالجة البرمجية."
+msgstr "إيقاف المشهد من أجل تنقيح الكبوات البرمجية (debugging)."
#: editor/editor_node.cpp
msgid "Pause Scene"
@@ -3334,7 +3333,7 @@ msgstr "تحديث عند التغيير"
#: editor/editor_node.cpp
#, fuzzy
msgid "Update Vital Changes"
-msgstr "تغيرات المادة:"
+msgstr "تغيرات المادة"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -3424,7 +3423,7 @@ msgstr "دمج مع الموجود"
#: editor/editor_node.cpp
#, fuzzy
msgid "Apply MeshInstance Transforms"
-msgstr "تحويل تغيير التحريك"
+msgstr "تطبيق التحويلات ل MeshInstance"
#: editor/editor_node.cpp
msgid "Open & Run a Script"
@@ -3530,7 +3529,6 @@ msgid "Version"
msgstr "الإصدار"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
msgstr "المالك"
@@ -3544,14 +3542,12 @@ msgid "Measure:"
msgstr "قياس:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "وقت الاطار (ميلي ثانية)"
+msgstr "وقت الإطار (مللي ثانية)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "متوسط الوقت (ميلي ثانية)"
+msgstr "متوسط الوقت (مللي ثانية)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3725,7 +3721,7 @@ msgid ""
"as runnable."
msgstr ""
"لا يوجد إعداد تصدير مسبق عامل لهذه المنصة.\n"
-"من فضلك أضف إعداد تصدير عامل في قائمة التصدير."
+"من فضلك أضفْ إعداد تصدير عامل في قائمة التصدير أو عرف إعداد تصدير موجود كعامل."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3775,9 +3771,8 @@ msgstr "إستيراد من عقدة:"
#. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git").
#: editor/editor_vcs_interface.cpp
-#, fuzzy
msgid "%s Error"
-msgstr "خطأ"
+msgstr "٪s خطأ"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
@@ -3792,9 +3787,8 @@ msgid "There are no mirrors available."
msgstr "لا يوجد مرايا متوفرة."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "يستقبل المرايا، من فضلك إنتظر..."
+msgstr "يتم استرداد قائمة المرايا، من فضلك إنتظر..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
@@ -3806,7 +3800,7 @@ msgstr "خطأ في طلب الرابط:"
#: editor/export_template_manager.cpp
msgid "Connecting to the mirror..."
-msgstr "يتم الاتصال بالمرآة..."
+msgstr "يتم الاتصال بالمُضيف (المرآة)..."
#: editor/export_template_manager.cpp
msgid "Can't resolve the requested address."
@@ -3857,8 +3851,8 @@ msgstr "هناك خطأ في جلب قائمة المرايا mirrors."
#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr ""
-"حدث خطأ في فك (تفسير parsing) ملف JSON الخاص بقائمة المرايا. من فضلك بلّغ عن "
-"هذه المشكلة!"
+"حدث خطأ في تفسير/تحليل (parsing) ملف JSON الخاص بقائمة المرايا. من فضلك بلّغ "
+"عن هذه المشكلة!"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
@@ -3917,7 +3911,7 @@ msgstr "خطأ مطابقة ssl"
#: editor/export_template_manager.cpp
#, fuzzy
msgid "Can't open the export templates file."
-msgstr "لم نستطع فتح الملف المضغوط المُورد."
+msgstr "لا نستطيع فتح ملف القوالب."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside the export templates file: %s."
@@ -3926,12 +3920,12 @@ msgstr "صيغة غير صالحة ل version.txt داخل ملف القالب:
#: editor/export_template_manager.cpp
#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "لا ملف version.txt تم إيجاده داخل القالب."
+msgstr "لم يتم إيجاد ملف version.txt في داخل ملف القالب."
#: editor/export_template_manager.cpp
#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "خطأ في إنشاء المسار للقوالب:"
+msgstr "خطأ في إنشاء المسار لاستخراج القوالب:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3966,9 +3960,8 @@ msgid "Export templates are installed and ready to be used."
msgstr "تم تنصيب قوالب التصدير وهي جاهزة للاستعمال."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "افتح الملف"
+msgstr "افتح المجلد"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
@@ -3989,12 +3982,11 @@ msgstr "التحميل من:"
#: editor/export_template_manager.cpp
#, fuzzy
msgid "Open in Web Browser"
-msgstr "تشغيل في المتصفح"
+msgstr "أفتحهُ في المتصفح"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Copy Mirror URL"
-msgstr "خطأ في نسخ"
+msgstr "انسخ عنوان URL المرآة"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -4025,19 +4017,16 @@ msgid "Cancel"
msgstr "إلغاء"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "لم نستطع فتح الملف المضغوط المُورد."
+msgstr "إلغاء تحميل القوالب."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "النسخة المُثبتة:"
+msgstr "نسخ مُثبتة اخرى:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "إلغاء التثبيت"
+msgstr "إلغاء تثبيت القالب"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -4111,6 +4100,9 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"لم يتعرف المحرر على امتداد الملف.\n"
+"إذا تريد إعادة تسميتهُ على أي حال, فأستخدم مدير ملفات نظام التشغيل الخاص بك.\n"
+"بعْدَ إعادة تسميتهُ إلى امتداد غير معرف, الملف لن يظهر في المحرر بعد الآن."
#: editor/filesystem_dock.cpp
msgid ""
@@ -4204,9 +4196,8 @@ msgid "Collapse All"
msgstr "طوي الكل"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "بحث الملفات"
+msgstr "رتبْ الملفات"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
@@ -4225,9 +4216,8 @@ msgid "Sort by Type (Descending)"
msgstr "صنّف وفقاً للنوع (تنازلياً)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "آخر ما تم تعديله"
+msgstr "رتب من آخر ما تم تعديله"
#: editor/filesystem_dock.cpp
msgid "Sort by First Modified"
@@ -4313,6 +4303,7 @@ msgid "Folder:"
msgstr "مجلد:"
#: editor/find_in_files.cpp
+#, fuzzy
msgid "Filters:"
msgstr "تنقيات:"
@@ -4334,22 +4325,20 @@ msgid "Replace..."
msgstr "استبدال..."
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Replace in Files"
-msgstr "إستبدال الكل"
+msgstr "إستبدل في كل المفات"
#: editor/find_in_files.cpp
msgid "Find: "
-msgstr "إيجاد: "
+msgstr "جدْ: "
#: editor/find_in_files.cpp
msgid "Replace: "
msgstr "إستبدال: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace All (NO UNDO)"
-msgstr "إستبدال الكل"
+msgstr "إستبدال الكل (لا رجوع)"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4531,7 +4520,7 @@ msgstr "إخلاء الإفتراضي ل '%s'"
#: editor/import_dock.cpp
msgid "Reimport"
-msgstr "إعادة إستيراد"
+msgstr "إعادة الاستيراد"
#: editor/import_dock.cpp
msgid ""
@@ -4540,6 +4529,10 @@ msgid ""
"Selecting another resource in the FileSystem dock without clicking Reimport "
"first will discard changes made in the Import dock."
msgstr ""
+"لديك تغييرات معلقة لم تطبقها حتى الآن. اضغط على إعادة الاستيراد لتطبيق "
+"التغييرات التي تم اجراؤها من خيارات الاستيراد.\n"
+"اختيار مورد آخر في رصيف نظام-الملفات من دون الضغط على إعادة الاستيراد أولاً "
+"سيؤدي إلى اهمال التغييرات التي تم اجراؤها في رصيف الاستيراد."
#: editor/import_dock.cpp
msgid "Import As:"
@@ -4566,21 +4559,19 @@ msgstr "تحذير: هناك مُلحقات تستخدم هذا المورد،
msgid ""
"Select a resource file in the filesystem or in the inspector to adjust "
"import settings."
-msgstr ""
+msgstr "إختر ملف مورد في نظام الملفات أو في المُتفحص لضبط إعدادت الاستيراد."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "فشل تحميل المورد."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "خاصيات"
+msgstr "إنسخ الخاصيات"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "خاصيات"
+msgstr "إلصق الخاصيات"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4605,23 +4596,21 @@ msgid "Save As..."
msgstr "حفظ باسم..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "ليس في مسار الموارد."
+msgstr "أختيارات اضافية للمورد."
#: editor/inspector_dock.cpp
#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "تحرير حافظة الموارد"
+msgstr "تحرير المورد من الحافظة (Clipboard)"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "نسخ الموارد"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "إجعله مُدمج"
+msgstr "إجعل المورد مُدمج"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4648,9 +4637,8 @@ msgid "Filter properties"
msgstr "خصائص التصفية"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "خصائص العنصر."
+msgstr "إدارة خصائص الكائن."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4806,8 +4794,8 @@ msgid ""
"Activate to enable playback, check node warnings if activation fails."
msgstr ""
"شجرة الرسومات المتحركة غير فعالة.\n"
-"فعلها لتتمكن من التشغيل playback، تفقد التنبيه الذي تصدره العُقدة إن فشل "
-"التفعيل."
+"فعلها لتتمكن من التشغيل playback، تفقد تنبيهات/تحذيرات التي تصدرها الوحدة "
+"إذا فشل التفعيل."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4867,6 +4855,7 @@ msgid "Remove BlendSpace2D Triangle"
msgstr "إزالة مثلث الدمج الفضائي ثنائي البُعد BlendSpace2D"
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
"إن BlendSpace2D لا ينتمي إلى عُقدة شجرة الرسومات المتحركة AnimationTree."
@@ -4907,11 +4896,11 @@ msgstr "تعديل المُرشحات"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Output node can't be added to the blend tree."
-msgstr "لا يمكن إضافة عُقدة المخرجات إلى شجرة الدمج."
+msgstr "لا يمكن إضافة مخرجات الوحدة إلى شجرة الدمج."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Add Node to BlendTree"
-msgstr "إضافة عُقدة إلى شجرة الدمج BlendTree"
+msgstr "أضفْ وحدة إلى شجرة الدمج"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Node Moved"
@@ -5266,7 +5255,7 @@ msgstr "تمت إزالة الكائن"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Transition Removed"
-msgstr "تمت إزالة النقل"
+msgstr "تمت إزالة الانتقال"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set Start Node (Autoplay)"
@@ -5284,11 +5273,11 @@ msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Create new nodes."
-msgstr "إنشاء عُقد جديدة."
+msgstr "إنشاء وحدات جديدة."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Connect nodes."
-msgstr "توصيل عقد."
+msgstr "ربط الوحدات."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Remove selected node or transition."
@@ -5311,7 +5300,7 @@ msgstr "الانتقال: "
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Play Mode:"
-msgstr "وضع اللعب:"
+msgstr "وضع التشغيل:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5325,7 +5314,7 @@ msgstr "إسم جديد:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr "تكبير/تصغير:"
+msgstr "تغيير الأبعاد:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade In (s):"
@@ -5400,11 +5389,11 @@ msgstr "مسح المدخله"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr "شجرة الحركة صحيحة."
+msgstr "شجرة التحريك صالحةٌ."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr "شجرة الحركة خاطئة."
+msgstr "شجرة التحريك غير صالحة."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation Node"
@@ -5500,7 +5489,7 @@ msgstr "فشل إتمام الطلب٫ الرمز الذي تم إرجاعه:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Cannot save response to:"
-msgstr "لا يمكن الحفظ بسبب:"
+msgstr "لا يمكن حفظ الرد الى:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Write error."
@@ -5512,11 +5501,11 @@ msgstr "فشل الطلب٫ السبب هو اعادة التحويل مرات
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Redirect loop."
-msgstr "اعادة توجيه حلقة التكرار."
+msgstr "حلقة إعادة التوجيه."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, timeout"
-msgstr "فشل الطلب ، انتهت المهلة"
+msgstr "فشل الطلب، انتهت المهلة"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Timeout."
@@ -5548,7 +5537,7 @@ msgstr "خطأ في تنزيل الأصول:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
-msgstr "جاري التنزيل (%s / %s)..."
+msgstr "جاري تنزيل (%s / %s)..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading..."
@@ -5679,14 +5668,12 @@ msgid "Audio Preview Play/Pause"
msgstr "معاينة الصوت شغّل/أوقف"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"Can't determine a save path for lightmap images.\n"
"Save your scene and try again."
msgstr ""
-"لا يمكن تحديد مسار حفظ لصور خرائط الضوء.\n"
-"احفظ مشهدك (لكي تحفظ الصور في المسار ذاته), او اختر مسار حفظ لخصائص خرائط "
-"الضوء المعدة مسبقا."
+"لا يمكن تحديد مسار الحفظ لصور خرائط الضوء.\n"
+"احفظ مشهدك ثم حاول مجدداً."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
@@ -5694,12 +5681,12 @@ msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Use "
"In Baked Light' and 'Generate Lightmap' flags are on."
msgstr ""
-"لايوجد ميش لكي يتم تجهيزة. تاكد من انه يحتوي على منفذ UV2 و ان زر الضوء "
-"'المعد' مفعل."
+"لا يوجد ميش ليتم تجهيزهُ. تأكد أنهُ يحتوي على منفذ UV2 و أن علامتا 'الأستخدام "
+"في الضوء المخبوز ' و 'أنتج خريطة ضوئية' مفعلتان."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
-msgstr "لا يمكن انشاء خرائط الضوء, تاكد من ان المسار صحيح."
+msgstr "لا يمكن انشاء خرائط الضوء, تاكد من ان المسار صحيح و قابل للكتابه."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed determining lightmap size. Maximum lightmap size too small?"
@@ -5710,22 +5697,26 @@ msgid ""
"Some mesh is invalid. Make sure the UV2 channel values are contained within "
"the [0.0,1.0] square region."
msgstr ""
-"بعض الشبكات غير صالحة. تأكد من احتواء قيم قناة UV2 داخل منطقة مربعة "
+"بعض المجسمات غير صالحة. تأكد من احتواء قيم قنوات UV2 في داخل منطقة مربعة "
"[0.0،1.0]."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
msgid ""
"Godot editor was built without ray tracing support, lightmaps can't be baked."
-msgstr "تم تجميع محرر Godot دون دعم لتتبع الأشعة. لا يمكن بناء خرائط الإضاءة."
+msgstr ""
+"تم تجميع محرر غو-دوت بدون دعم لتتبع الأشعة. لذلك لا يمكن بناء خرائط ضوئية."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Bake Lightmaps"
msgstr "إعداد خرائط الضوء"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
-msgstr "حدد ملف الخريطة الضوئية:"
+msgstr "حدد ملف الخريطة الضوئية (lightmap):"
#: editor/plugins/camera_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5738,7 +5729,7 @@ msgstr "تعديل اللقطة"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Offset:"
-msgstr "معادل الشبكة:"
+msgstr "مقدار إزاحة الشبكة:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Step:"
@@ -5746,7 +5737,7 @@ msgstr "خطوة الشبكة:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Primary Line Every:"
-msgstr "الأخط الأولي كُل:"
+msgstr "الخط الأساسي عند:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "steps"
@@ -5754,7 +5745,7 @@ msgstr "خطوات"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
-msgstr "معادل الدوران:"
+msgstr "مقدار إزاحة الدوران:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
@@ -5774,7 +5765,7 @@ msgstr "إنشاء موجه عمودي جديد"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Remove Vertical Guide"
-msgstr "مسح الموجه العمودي"
+msgstr "ازالة الموجه العمودي"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Horizontal Guide"
@@ -5797,19 +5788,16 @@ msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
msgstr "تعيين إزاحة \"CanvasItem \"%s المحورية إلى (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Rotate %d CanvasItems"
-msgstr "تدوير العنصر القماشي"
+msgstr "تدوير%d من عناصر-اللوحة"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Rotate CanvasItem \"%s\" to %d degrees"
-msgstr "تدوير العنصر القماشي"
+msgstr "تدوير عنصر-اللوحة \"%s\" الى %d درجة"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move CanvasItem \"%s\" Anchor"
-msgstr "تحريك العنصر القماشي"
+msgstr "تحريك مرساة عنصر-اللوحة \"%s\""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale Node2D \"%s\" to (%s, %s)"
@@ -5820,24 +5808,20 @@ msgid "Resize Control \"%s\" to (%d, %d)"
msgstr "تغيير حجم عنصر التحكم \"٪ s\" إلى (٪ d،٪ d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale %d CanvasItems"
-msgstr "مقياس العنصر القماشي"
+msgstr "تغيير حجم عناصر-اللوحة %d"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale CanvasItem \"%s\" to (%s, %s)"
-msgstr "مقياس العنصر القماشي"
+msgstr "تغيير حجم عنصر-اللوحة \"%s\" الى (%s, %s)"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move %d CanvasItems"
-msgstr "تحريك العنصر القماشي"
+msgstr "تحريك %d من عناصر-اللوحات"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move CanvasItem \"%s\" to (%d, %d)"
-msgstr "تحريك العنصر القماشي"
+msgstr "تحريك عنصر-اللوحة \"%s\" الى (%d, %d)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5849,7 +5833,7 @@ msgstr "حُدد القفل"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Grouped"
-msgstr "المجموعات"
+msgstr "مُجَمعَ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5951,24 +5935,23 @@ msgstr "تغيير المرتكزات"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Project Camera Override\n"
"Overrides the running project's camera with the editor viewport camera."
msgstr ""
-"تجاوز كاميرا اللعبة.\n"
-"تجاوز كاميرا اللعبة عن طريق كاميرا إطار العرض في المحرر."
+"تجاوز كاميرا المشروع.\n"
+"يتجاوز كاميرا المشروع و يستخدم بدلها كاميرا إطار العرض في المحرر."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Project Camera Override\n"
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
"تجاوز كاميرا المشروع.\n"
-"ليس هناك مشروع يعمل حالياً. شغل المشروع من المحرر لاستعمال هذه الميزة."
+"ليس هناك نسخة من المشروع قيد التشغيل حالياً. قم بتشغيل المشروع من المحرر "
+"لاستعمال هذه الميزة."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6034,9 +6017,8 @@ msgstr "تحديد الوضع"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "ازالة الكائن المحدد او الإنتقال المحدد."
+msgstr "أسحبْ: تدوير الوحدة المحددة حول النقطة المحورية."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+Drag: Move selected node."
@@ -6047,15 +6029,14 @@ 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 "ازالة الكائن المحدد او الإنتقال المحدد."
+msgstr "V: تعيين نقطة المحور للوحدة المحددة."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Alt + زر الفأرة الأيمن: أظهر قائمة لكل الوحدات في المنطقة المضغوطة، متضمنة "
+"Alt + زر-الفأرة-الأيمن: أظهر قائمة لكل الوحدات في المنطقة المضغوطة، متضمنة "
"المقفلة منها."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6079,7 +6060,7 @@ msgstr "وضع التحجيم"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Shift: Scale proportionally."
-msgstr ""
+msgstr "Shift: التكبير بالتساوي."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6180,7 +6161,7 @@ msgstr "قفل العنصر المحدد في هذا المكان (لا يمكن
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Lock Selected Node(s)"
-msgstr "حُدد القفل"
+msgstr "إقفال الوحدة(الوحدات) المحددة"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6191,7 +6172,7 @@ msgstr "إلغاء القفل عن هذا العنصر (يمكن تحريكه ا
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Unlock Selected Node(s)"
-msgstr "حُدد إلغاء القفل"
+msgstr "إلغاء فقل الوحدة(الوحدات) المحددة"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6202,7 +6183,7 @@ msgstr "تأكد من أن الطفل للعنصر غير قابل للتحدي
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Group Selected Node(s)"
-msgstr "حُدد التجميع"
+msgstr "إجمعْ الوحدة(الوحدات) المحددة"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6213,7 +6194,7 @@ msgstr "إرجاع مقدرة تحديد الطفل للعنصر."
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Ungroup Selected Node(s)"
-msgstr "حُدد إلغاء التجميع"
+msgstr "إلغاء جمعْ الوحدة(الوحدات) المحددة"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
@@ -6325,9 +6306,8 @@ msgid "Clear Pose"
msgstr "إخلاء الوضع"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "إضافة عُقدة"
+msgstr "أضفْ وحدة هنا"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -6402,7 +6382,7 @@ msgstr "لا يمكن إضافة وحدات متعددة بدون الوحدةا
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr "إنشاء عقدة"
+msgstr "إنشاء وحدة"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -6472,8 +6452,9 @@ msgstr "قناع الانبعاث"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
+#, fuzzy
msgid "Solid Pixels"
-msgstr "البكسيلات الأساسية Solid Pixels"
+msgstr "البكسيلات الأساسية (Solid Pixels)"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6630,9 +6611,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "لم يتم إنشاء شكل محدب تصادمي وحيد."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "أنشئ شكل محدب وحيد"
+msgstr "إنشاء شكل مُحدب مبسط"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6732,9 +6712,8 @@ msgstr ""
"هذا هو الخيار الأسرع (لكنه الأقل دقة) للكشف عن وقوع التصادم."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "إنشاء شقيق تصادم محدب مفرد"
+msgstr "إنشاء شقيق تصادم مُحدب مبسط"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6751,14 +6730,13 @@ msgid "Create Multiple Convex Collision Siblings"
msgstr "إنشاء أشقاء تصادم محدب متعددة"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid ""
"Creates a polygon-based collision shape.\n"
"This is a performance middle-ground between a single convex collision and a "
"polygon-based collision."
msgstr ""
-"إنشاء شكل تصادمي مُضلعي الهيئة.\n"
-"هذا الخيار \\مُتوسط الأداء بين الخيارين أعلاه."
+"ينشئ شكل تصادم قائم على المضلع.\n"
+"هذا الخيار مُتوسط الأداء بين التصادم مُحدب مبسط وحيد و تصادم قائم على المضلع."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -6825,14 +6803,12 @@ msgid "Remove Selected Item"
msgstr "مسح العنصر المحدد"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Import from Scene (Ignore Transforms)"
-msgstr "إستيراد من المشهد"
+msgstr "إستيراد من المشهد (تجاهل التحويلات)"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Import from Scene (Apply Transforms)"
-msgstr "إستيراد من المشهد"
+msgstr "إستيراد من المشهد (مع وضع التحويلات)"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Update from Scene"
@@ -6950,12 +6926,11 @@ msgstr "توليد Rect الرؤية"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Can only set point into a ParticlesMaterial process material"
-msgstr "لا يمكن إنشاء سوى نقطة وحيدة داخل ParticlesMaterial معالج المواد"
+msgstr "لا يمكن إنشاء سوى نقطة وحيدة داخل معالج المواد لـ ParticlesMaterial"
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Convert to CPUParticles2D"
-msgstr "تحويل إلى %s"
+msgstr "حولْ إلى جسيمات-ثنائية-البُعد-لوحدة-المعالجة-المركزية (CPUParticles2D)"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -7020,7 +6995,7 @@ msgstr "ولد رؤية AABB"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Point from Curve"
-msgstr "إزالة نقطة من المنحنى"
+msgstr "إزالة النقطة من المنحنى"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Out-Control from Curve"
@@ -7247,18 +7222,16 @@ msgid "Move Points"
msgstr "تحريك النقاط"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Command: Rotate"
-msgstr "سحب: للتدوير"
+msgstr "Command: استدارة"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
msgstr "Shift: تحريك الكُل"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Shift+Command: Scale"
-msgstr "Shift+Ctrl: تحجيم"
+msgstr "Shift+Command: تغيير الحجم"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
@@ -7304,14 +7277,12 @@ msgid "Radius:"
msgstr "نصف القطر:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Copy Polygon to UV"
-msgstr "إنشاء مُضلع وUV"
+msgstr "إنسخ المُضلع إلى UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Copy UV to Polygon"
-msgstr "تحويل إلى مُضلع ثنائي الأبعاد"
+msgstr "إنسخ ال UV إلى المُضلع"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7412,38 +7383,32 @@ msgid "ResourcePreloader"
msgstr "مورد محمل سلفاً"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "القلب أفقياً"
+msgstr "إقلبْ البوابات"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "عدد النقاط المولدة"
+msgstr "تم توليد نقاط للغرفة"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "عدد النقاط المولدة"
+msgstr "قم بتوليد نقاط"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "القلب أفقياً"
+msgstr "إقلبْ البوابة"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Occluder Set Transform"
-msgstr "محو التَحَوّل"
+msgstr "تم تغيير تحويل ال Occluder"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Center Node"
-msgstr "إنشاء عقدة"
+msgstr "حركْ الوحدة للمنتصف"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
-msgstr "لا تملك شجرة الرسومات المتحركة مساراً لمشغل الرسومات المتحركة"
+msgstr "لا تملك شجرة التحريك مساراً لمشغل الرسومات المتحركة"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "Path to AnimationPlayer is invalid"
@@ -7871,9 +7836,8 @@ msgid "Find in Files..."
msgstr "جِد في الملفات..."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Replace in Files..."
-msgstr "استبدال..."
+msgstr "إستبدل في الملفات..."
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
@@ -7949,14 +7913,12 @@ msgid "Skeleton2D"
msgstr "هيكل ثنائي البُعد"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-#, fuzzy
msgid "Reset to Rest Pose"
-msgstr "تحديد العظام لتكون في وضعية الراحة"
+msgstr "إعادة تعيين العظام للوضعية الافتراضية (Rest Pose)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-#, fuzzy
msgid "Overwrite Rest Pose"
-msgstr "الكتابة المُتراكبة Overwrite"
+msgstr "الكتابة فوق الوضعية الافتراضية (Rest Pose)"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -8252,7 +8214,13 @@ msgid "Cinematic Preview"
msgstr "معاينة سينمائية"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "غير متوافر عند استخدام الخرج البصري GLES2 ."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8288,9 +8256,8 @@ msgid "Freelook Slow Modifier"
msgstr "مُعدّل تباطؤ الرؤية الحُرة"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "غيّر حجم الكاميرا"
+msgstr "تفعيل/تعطيل العرض المسبق للكاميرا"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8300,7 +8267,8 @@ msgstr "تدوير الرؤية مقفول"
msgid ""
"To zoom further, change the camera's clipping planes (View -> Settings...)"
msgstr ""
-"للتكبير بشكل أكبر ، قم بتغيير مستويات اقتصاص الكاميرا (عرض -> الإعدادات ...)"
+"للتكبير بشكل أكبر ، قم بتغيير مستويات اقتصاص (clipping planes) للكاميرا (عرض "
+"-> الإعدادات ...)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -8335,9 +8303,8 @@ msgstr ""
"السينية\")."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
-msgstr "محاذاة العُقد إلى الأرضية"
+msgstr "محاذاة الوحدات إلى الأرضية"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Couldn't find a solid floor to snap the selection to."
@@ -8429,9 +8396,8 @@ msgid "Increase Field of View"
msgstr "زدْ مجال الرؤية"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Reset Field of View to Default"
-msgstr "إعادة التعيين إلى الافتراضي"
+msgstr "إعادة تعيين مجال الرؤية إلى الافتراضي"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -8713,9 +8679,8 @@ msgid "New Animation"
msgstr "رسومية متحركة جديدة"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Speed:"
-msgstr "السرعة (إطار ف. ث. FPS):"
+msgstr "السرعة:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
@@ -8806,9 +8771,8 @@ msgid "Step:"
msgstr "الخطوة:"
#: editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Separation:"
-msgstr "التعدادات:"
+msgstr "التباعُدات:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "TextureRegion"
@@ -8888,12 +8852,11 @@ msgstr "تحديث المحرر"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Finalizing"
-msgstr "جاري التحليل"
+msgstr "جاري إنهاء الاستيراد"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "تنقيات:"
+msgstr "تصفية:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
@@ -9188,6 +9151,11 @@ msgstr "حذف المورد:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "إعادة تسمية المورد"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "استيراد الموضوع Theme"
@@ -9200,9 +9168,8 @@ 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 "الملفات المتوافرة:"
+msgstr "أنواع المستندة-إلى-الوحدات المتوافرة:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Type name is empty!"
@@ -9237,6 +9204,20 @@ msgstr ""
"المشابهة في جميع صناديق المظهر من هذا النوع."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "إضافة نوع للعنصر"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "تحيد نوع المتغير"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "تعديل النوع الأساس"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "أظهر الإفتراضي"
@@ -9253,8 +9234,19 @@ msgid "Override all default type items."
msgstr "تجاوز جميع أنواع العناصر الافتراضية."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "إضافة نوع للعنصر"
+#, fuzzy
+msgid "Base Type"
+msgstr "تعديل النوع الأساس"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9263,16 +9255,15 @@ msgstr "الموضوع:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Manage Items..."
-msgstr "إدارة الأنواع..."
+msgstr "إدارة العناصر..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr "أضف، أزل، رتّب واستورد عناصر القالب."
+msgstr "أضفْ، أزلْ، رتّبْ واستوردْ عناصر القالب."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "عرض"
+msgstr "إضافة عرض مسبق"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9611,7 +9602,7 @@ msgstr "نسخ قناع-البِت."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Paste bitmask."
-msgstr "لصق قناع البِت"
+msgstr "لصق قناع-البِت."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Erase bitmask."
@@ -9977,30 +9968,16 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "فروع"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Create New Branch"
-msgstr "إنشاء مشروع جديد"
+msgstr "إنشاء فرع جديد"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remove Branch"
-msgstr "حذف مسار التحريك"
+msgstr "إزالة فرع"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branch Name"
@@ -11284,7 +11261,7 @@ msgstr "مُحرك الإخراج البصري:"
#: editor/project_manager.cpp
msgid "OpenGL ES 3.0"
-msgstr "OpenGL ES 3.0"
+msgstr "خلفية بدعم OpenGL ES 3.0"
#: editor/project_manager.cpp
msgid "Not supported by your GPU drivers."
@@ -11304,7 +11281,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "OpenGL ES 2.0"
-msgstr "OpenGL ES 2.0"
+msgstr "خلفية بدعم OpenGL ES 2.0"
#: editor/project_manager.cpp
msgid ""
@@ -11412,12 +11389,10 @@ msgid "Are you sure to run %d projects at once?"
msgstr "هل أنت متأكد من فتح %d مشاريع مرّة واحدة؟"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "أتريد إزالة %d من المشاريع من القائمة؟"
+msgstr "أتريد إزالة %d مشروع من القائمة؟"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
msgstr "أتريد إزالة هذا المشروع من القائمة؟"
@@ -12151,7 +12126,7 @@ msgstr "فصل النص البرمجي"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
-msgstr "لا يمكن إجراء هذه العملية على جذر الشجرة."
+msgstr "لا يمكن إجراء هذه العملية على الجذر الرئيسي."
#: editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
@@ -12433,9 +12408,9 @@ msgid ""
"every time it updates.\n"
"Switch back to the Local scene tree dock to improve performance."
msgstr ""
-"إذا تم تحديده ، فسيؤدي شجرة المشهد إلى توقف المشروع في كل مرة يتم فيها "
-"تحديثه.\n"
-"قم بالتبديل مرة أخرى إلى رصيف شجرة المشهد المحلي لتحسين الأداء."
+"إذا تم تحديده ، فسيؤدي شجرة المشهد البعيده (Remote) إلى توقف المشروع في كل "
+"مرة يتم تحديث المشروع.\n"
+"قمْ بالتبديل مرة أخرى إلى رصيف شجرة المشهد المحلي لتحسين الأداء."
#: editor/scene_tree_dock.cpp
msgid "Local"
@@ -12750,6 +12725,11 @@ msgid "Stack Frames"
msgstr "حزم الإطارات Stack Frames"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "تنقية البلاطات"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "مُنشئ الملفات التعريفية Profiler"
@@ -13007,7 +12987,7 @@ msgstr "مكتبات: "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr "GDNative"
+msgstr "لغة البرمجة GDNative"
#: modules/gdscript/gdscript_functions.cpp
msgid "Step argument is zero!"
@@ -13491,7 +13471,7 @@ msgstr "إضافة عُقدة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
-msgstr "إضافة عُقدة (عُقد) من الشجرة"
+msgstr "أضفْ وحدة(وحدات) من الشجرة"
#: modules/visual_script/visual_script_editor.cpp
msgid ""
@@ -14008,9 +13988,8 @@ msgid "Running on %s"
msgstr "يعمل على %s"
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Exporting APK..."
-msgstr "تصدير APK..."
+msgstr "جاري تصدير APK..."
#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
@@ -14022,9 +14001,8 @@ msgid "Installing to device, please wait..."
msgstr "يستقبل المرايا، من فضلك إنتظر..."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Could not install to device: %s"
-msgstr "لم يتمكن من التثبيت على الجهاز: %s"
+msgstr "لم نتمكن من التثبيت على الجهاز: %s"
#: platform/android/export/export_plugin.cpp
#, fuzzy
@@ -14088,7 +14066,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
-msgstr "دليل ملفات \"أدوات-المنصة platform-tools\" مفقود!"
+msgstr "المجلد 'أدوات-المنصة (platform-tools)' مفقود!"
#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
@@ -14122,9 +14100,10 @@ msgstr "اسم رُزمة غير صالح:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"وحدة \"GodotPaymentV3\" المضمنة في إعدادات المشروع \"android / modules\" غير "
-"صالحة (تم تغييره في Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14205,9 +14184,8 @@ msgid "'apksigner' returned with error #%d"
msgstr "أعاد 'apksigner' الخطأ التالي #%d"
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Verifying %s..."
-msgstr "التأكيد من %s..."
+msgstr "جاري التحقق من %s..."
#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
@@ -14228,9 +14206,8 @@ msgid "APK Expansion not compatible with Android App Bundle."
msgstr "توسيع APK غير متوافق مع حزمة تطبيق الأندرويد Android App Bundle."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Invalid filename! Android APK requires the *.apk extension."
-msgstr "إسم ملف غير صالح! يتطلب ملف اندرويد APK اللاحقة ‭.*.apk"
+msgstr "أسم الملف غير صالح! يتطلب ملف اندرويد APK أمتداد *.apk لتعمل."
#: platform/android/export/export_plugin.cpp
msgid "Unsupported export format!\n"
@@ -14328,9 +14305,8 @@ msgid "Adding files..."
msgstr "إضافة %s..."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Could not export project files"
-msgstr "لا يمكن كتابة الملف"
+msgstr "لم نتمكن من تصدير ملفات المشروع"
#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
@@ -14512,9 +14488,7 @@ msgstr "ينشئ الصورة المصغرة"
#: platform/osx/export/export.cpp
#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"لم يتم إيجاد قالب APK للتصدير:\n"
-"%s"
+msgstr "لم يتم إيجاد تطبيق القالب (Template app) للتصدير:"
#: platform/osx/export/export.cpp
msgid ""
@@ -14730,19 +14704,16 @@ msgid ""
msgstr ""
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "مسار غير صالح."
+msgstr "مسار الأيقونة غير صالح:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "صيغة غير صالحة."
+msgstr "إصدار الملف غير صالح:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "مُعرف GUID (المُعرّف الفريد العالمي) للمنتج غير صالح."
+msgstr "مُعرف GUID (المُعرّف الفريد العالمي) للمنتج غير صالح:"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -15268,7 +15239,7 @@ msgstr ""
#: scene/3d/physics_joint.cpp
msgid "Joint is not connected to any PhysicsBodies"
-msgstr ""
+msgstr "المفصل غير متصل لأي الاجسام الفيزيائية (PhysicsBodies)"
#: scene/3d/physics_joint.cpp
msgid "Node A and Node B must be different PhysicsBodies"
@@ -15332,7 +15303,7 @@ msgstr ""
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
-msgstr ""
+msgstr "يجب توافر مدير-غرف (RoomManager) واحد فقط في شجرة المشهد."
#: scene/3d/room_manager.cpp
msgid ""
@@ -15423,9 +15394,11 @@ msgstr ""
"اضبط وضع الخلفية لهذه البيئة على لوحة (Canvas) (للمشاهد ثنائية البُعد)."
#: scene/animation/animation_blend_tree.cpp
+#, fuzzy
msgid "On BlendTree node '%s', animation not found: '%s'"
msgstr ""
-"في عقدة خليط-الشجرة (BlendTree) '%s'، لم يتم العثور على الرسوم المتحركة:'%s '"
+"في عقدة خليط-الشجرة (BlendTree) '%s'، لم يتم العثور على الرسوم المتحركة: '%s "
+"'"
#: scene/animation/animation_blend_tree.cpp
msgid "Animation not found: '%s'"
@@ -15467,8 +15440,8 @@ msgstr "العُقدة الرئيسة لمُشغل الرسومات المتحر
#: scene/animation/animation_tree_player.cpp
msgid "This node has been deprecated. Use AnimationTree instead."
msgstr ""
-"لقد تم إهمال هذه العُقدةز استخدم شجرة الرسومات المتحركة AnimationTree بدلاً عن "
-"ذلك."
+"لقد تم إهمال هذه الوحدة, أستخدم شجرة الرسومات المتحركة (AnimationTree) بدلاً "
+"عنها."
#: scene/gui/color_picker.cpp
#, fuzzy
@@ -15569,7 +15542,7 @@ msgstr ""
#: scene/gui/tree.cpp
msgid "(Other)"
-msgstr "(أخرى)"
+msgstr "(آخر)"
#: scene/main/scene_tree.cpp
msgid ""
diff --git a/editor/translations/az.po b/editor/translations/az.po
index 46738301a9..c958bc1f45 100644
--- a/editor/translations/az.po
+++ b/editor/translations/az.po
@@ -1519,6 +1519,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2873,7 +2877,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5525,6 +5529,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7966,7 +7974,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8845,6 +8858,11 @@ msgid "Select Another Theme Resource:"
msgstr "Əvəzetmə mənbəyini axtarın:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Mənbə"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8893,6 +8911,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8909,7 +8939,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "%s növünü dəyişdirin"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9589,18 +9630,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Uyğunlaşmalar:"
@@ -12163,6 +12192,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Siqnalları filtirlə"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13455,6 +13489,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index 7bb426d010..a91ee554b6 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -1471,6 +1471,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Неправилно име."
@@ -2843,7 +2847,7 @@ msgstr ""
msgid "Add a new scene."
msgstr "Добавяне на нови нова сцена."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Сцена"
@@ -5530,6 +5534,10 @@ msgid "Bake Lightmaps"
msgstr "Изпичане на карти на осветеност"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Изберете файл за изпичане на карта на осветеност:"
@@ -7984,7 +7992,13 @@ msgid "Cinematic Preview"
msgstr "Кинематографски предварителен преглед"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Не е налично при използване на изчертаване чрез GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8872,6 +8886,11 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Ресурс"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Друга тема"
@@ -8918,6 +8937,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Добавяне на тип елемент"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показване на стандартните"
@@ -8934,8 +8965,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Добавяне на тип елемент"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9620,18 +9661,6 @@ msgid "Commit list size"
msgstr "Размер на списъка с подавания"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Клони"
@@ -12198,6 +12227,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Филтриране на плочките"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13498,9 +13532,10 @@ msgstr "Неправилно име на пакет:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"В настройките на проекта, раздел „android/modules“, присъства неправилен "
-"модул „GodotPaymentV3“ (това е променено във Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index b8b8ccbf84..514a488c1f 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -1526,6 +1526,11 @@ msgstr "ডিফল্ট বাস লেআউট লোড করুন।"
msgid "Create a new Bus Layout."
msgstr "নতুন বাস লেআউট তৈরি করুন।"
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "অডিও বাস লেআউট ওপেন করুন"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "অগ্রহনযোগ্য নাম।"
@@ -3050,7 +3055,7 @@ msgstr "বিক্ষেপ-হীন মোড"
msgid "Add a new scene."
msgstr "নতুন ট্র্যাক/পথ-সমূহ যোগ করুন।"
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "দৃশ্য"
@@ -6022,6 +6027,10 @@ msgid "Bake Lightmaps"
msgstr "লাইট্ম্যাপে হস্তান্তর করুন:"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "লাইটম্যাপ বেক ফাইলটি নির্বাচন করুন:"
@@ -8730,7 +8739,12 @@ msgid "Cinematic Preview"
msgstr "মেস লাইব্রেরি তৈরি হচ্ছে"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9717,6 +9731,11 @@ msgstr "রিসোর্স অপসারণ করুন"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "রিসোর্স পুনঃনামকরণ করুন"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "থিম ইম্পোর্ট করুন"
@@ -9771,6 +9790,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "বস্তু যোগ করুন"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "চলক/ভেরিয়েবল সম্পাদন করুন:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "ধরণ পরিবর্তন করুন"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "লোড ডিফল্ট"
@@ -9789,8 +9823,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "বস্তু যোগ করুন"
+msgid "Base Type"
+msgstr "ধরণ পরিবর্তন করুন"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -10567,18 +10611,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "মিলসমূহ:"
@@ -13405,6 +13437,11 @@ msgid "Stack Frames"
msgstr "ফ্রেমসমূহ স্তূপ করুন"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "দ্রুত ফাইলসমূহ ফিল্টার করুন..."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "প্রোফাইলার"
@@ -14852,6 +14889,9 @@ msgstr "অগ্রহণযোগ্য ক্লাস নাম"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/br.po b/editor/translations/br.po
index 574adeb121..325635fe0e 100644
--- a/editor/translations/br.po
+++ b/editor/translations/br.po
@@ -1454,6 +1454,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2805,7 +2809,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5449,6 +5453,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7881,7 +7889,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8756,6 +8769,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8802,6 +8819,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8818,7 +8847,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9494,18 +9533,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12060,6 +12087,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13348,6 +13379,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 144cbbad2e..c4208b23c4 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -1505,6 +1505,11 @@ msgstr "Carrega el disseny del Bus predeterminat."
msgid "Create a new Bus Layout."
msgstr "Crea un nou Disseny de Bus."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Obre un Disseny de Bus d'Àudio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nom no vàlid."
@@ -2970,7 +2975,7 @@ msgstr "Commutar el Mode Lliure de Distraccions."
msgid "Add a new scene."
msgstr "Afegeix una escena nova."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Escena"
@@ -5795,6 +5800,10 @@ msgid "Bake Lightmaps"
msgstr "Precalcular Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Seleccioneu un Fitxer de Plantilla:"
@@ -8365,7 +8374,13 @@ msgid "Cinematic Preview"
msgstr "Previsualització Cinemàtica"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "No disponible quan s'utilitza el renderitzador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9311,6 +9326,11 @@ msgstr "Elimina el Recurs:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Reanomena el Recurs"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Importa un Tema"
@@ -9365,6 +9385,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Afegeix un Element"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Estableix el Tipus de Variable"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Modifica el Tipus de Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Carrega Valors predeterminats"
@@ -9383,8 +9418,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Afegeix un Element"
+msgid "Base Type"
+msgstr "Modifica el Tipus de Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -10135,18 +10180,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Coincidències:"
@@ -12991,6 +13024,11 @@ msgid "Stack Frames"
msgstr "Fotogrames de la Pila"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrar tiles"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Perfilador"
@@ -14406,6 +14444,9 @@ msgstr "El nom del paquet no és vàlid:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index 3908694615..9094006744 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -34,7 +34,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: 2022-02-10 07:50+0000\n"
+"PO-Revision-Date: 2022-03-08 08:59+0000\n"
"Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
@@ -43,7 +43,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.11-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1503,6 +1503,11 @@ msgstr "Načíst výchozí rozvržení sběrnice."
msgid "Create a new Bus Layout."
msgstr "Vytvořit nové rozvržení sběrnice."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Otevřít rozložení audio sběrnice"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Neplatný název."
@@ -2936,7 +2941,7 @@ msgstr "Zapnout nerozptylující režim."
msgid "Add a new scene."
msgstr "Přidat novou scénu."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scéna"
@@ -4721,7 +4726,7 @@ msgstr "Odstranit polygon a bod"
#: editor/plugins/animation_state_machine_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr "Přidat animaci"
+msgstr "Přidání animace"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -5690,6 +5695,10 @@ msgid "Bake Lightmaps"
msgstr "Zapéct lightmapy"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Vybrat soubor pro zapečení světelných map:"
@@ -8186,7 +8195,13 @@ msgid "Cinematic Preview"
msgstr "Filmový náhled"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Není k dispozici při použití vykreslovacího modulu GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9104,6 +9119,11 @@ msgstr "Vybrerte jiný zdroj motivu:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Přejmenovat zdroj"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Importovat motiv"
@@ -9155,6 +9175,21 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Přidat položku"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Nastavit typ proměnné"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Změnit základní typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Zobrazit výchozí"
@@ -9172,8 +9207,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Přidat položku"
+msgid "Base Type"
+msgstr "Změnit základní typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9889,18 +9934,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Shody:"
@@ -12628,6 +12661,11 @@ msgid "Stack Frames"
msgstr "Rámce zásobníku"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrovat dlaždice"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profiler"
@@ -13543,7 +13581,7 @@ msgstr ""
#: modules/visual_script/visual_script_flow_control.cpp
msgid "While"
-msgstr ""
+msgstr "While"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "while (cond):"
@@ -13977,9 +14015,10 @@ msgstr "Neplatné jméno balíčku:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Neplatný modul \"GodotPaymentV3\" v nastavení projektu \"Android / "
-"moduly\" (změněno v Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 0fe9e67693..fa49368276 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -1543,6 +1543,11 @@ msgstr "Indlæs standard Bus Layout."
msgid "Create a new Bus Layout."
msgstr "Opret et nyt Bus Layout."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Åben Audio Bus Layout"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Ugyldigt navn."
@@ -3027,7 +3032,7 @@ msgstr "Skift distraktions-fri modus."
msgid "Add a new scene."
msgstr "Tilføj en ny scene."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scene"
@@ -5897,6 +5902,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Vælg template fil"
@@ -8478,7 +8487,12 @@ msgid "Cinematic Preview"
msgstr "Opretter Maske Forhåndsvisninger"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9428,6 +9442,11 @@ msgstr "Søg Erstatnings Ressource:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Ressource"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Medlemmer"
@@ -9480,6 +9499,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Sæt Variabel Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Skift Base Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Indlæs Default"
@@ -9497,7 +9530,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Skift Base Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -10253,18 +10297,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Matches:"
@@ -12972,6 +13004,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrer filer..."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14353,6 +14390,9 @@ msgstr "Ugyldigt navn."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 88904ba7d7..aeb8000e85 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -76,13 +76,14 @@
# Tim <tim14speckenwirth@gmail.com>, 2021.
# Antonio Noack <corperateraider@gmail.com>, 2022.
# ‎ <artism90@googlemail.com>, 2022.
+# Coxcopi70f00b67b61542fe <hn_vogel@gmx.net>, 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: 2022-02-16 08:44+0000\n"
-"Last-Translator: ‎ <artism90@googlemail.com>\n"
+"PO-Revision-Date: 2022-03-02 18:39+0000\n"
+"Last-Translator: Coxcopi70f00b67b61542fe <hn_vogel@gmx.net>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -90,7 +91,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.11-dev\n"
+"X-Generator: Weblate 4.11.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1556,6 +1557,11 @@ msgstr "Standard Bus-Layout laden."
msgid "Create a new Bus Layout."
msgstr "Neues Audiobus-Layout erstellen."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Öffne Audiobus-Layout"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Ungültiger Name."
@@ -2235,7 +2241,7 @@ msgstr "Stile"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr "Aufzählungstypen"
+msgstr "Aufzählungen"
#: editor/editor_help.cpp
msgid "Property Descriptions"
@@ -3020,7 +3026,7 @@ msgstr "Ablenkungsfreien Modus umschalten."
msgid "Add a new scene."
msgstr "Eine neue Szene hinzufügen."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Szene"
@@ -3396,14 +3402,12 @@ msgid "Update Continuously"
msgstr "Fortlaufend aktualisieren"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Bei Änderungen aktualisieren"
+msgstr "Bei allen Änderungen aktualisieren"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Materialänderungen:"
+msgstr "Nur bei wichtigen Änderungen aktualisieren"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4181,6 +4185,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Diese Dateiendung wird nicht vom Editor erkannt.\n"
+"Zum Durchführen der Umbenennung muss ein anderer Dateimanager genutzt "
+"werden.\n"
+"Dateien mit unbekannten Dateiendungen werden daraufhin nicht mehr im Editor "
+"angezeigt."
#: editor/filesystem_dock.cpp
msgid ""
@@ -5802,6 +5811,10 @@ msgid "Bake Lightmaps"
msgstr "Lightmaps vorrendern"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Lightmap-Bake-Datei auswählen:"
@@ -8299,7 +8312,13 @@ msgid "Cinematic Preview"
msgstr "Cinematische Vorschau"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Nicht verfügbar wenn der GLES2–Renderer genutzt wird."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9199,6 +9218,11 @@ msgid "Select Another Theme Resource:"
msgstr "Andere Thema-Ressource auswählen:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Ressource umbenennen"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Anderes Design"
@@ -9247,6 +9271,20 @@ msgstr ""
"StyleBox werden ebenfalls in allen StyleBoxen des gleichen Typs geändert."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Elementtyp hinzufügen"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Variablentyp festlegen"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Basistyp ändern"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Standard anzeigen"
@@ -9263,8 +9301,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Basistyp ändern"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9972,18 +10021,6 @@ msgid "Commit list size"
msgstr "Größe der Commit-Liste"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Zweige"
@@ -12745,6 +12782,11 @@ msgid "Stack Frames"
msgstr "Aufrufsverlauf"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Kacheln filtern"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profiler"
@@ -12918,14 +12960,12 @@ msgid "Set Occluder Sphere Position"
msgstr "Occluder-Sphärenposition festlegen"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Polygon Point Position"
-msgstr "Portal-Point-Position festlegen"
+msgstr "Position von Occluder-Polygon-Punkt festlegen"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Hole Point Position"
-msgstr "Kurvenpunktposition festlegen"
+msgstr "Position von Occluder-Loch-Punkt festlegen"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -14072,9 +14112,10 @@ msgstr "Ungültiger Paketname:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Ungültiges „GodotPaymentV3“-Modul eingebunden in den „android/modules“-"
-"Projekteinstellungen (wurde in Godot 3.2.2 geändert).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14341,166 +14382,167 @@ msgstr "Fehler beim Starten des HTTP-Servers:"
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "Dateisystemzugriff fehlgeschlagen."
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "Lesen von Info.plist-Hash fehlgeschlagen."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "Ungültiger Projektname."
+msgstr "Ungültige Info.plist, kein exe-Name."
#: platform/osx/export/codesign.cpp
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "Ungültige Info.plist, keine bundle-id."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "Ungültige Geometrie, Polygon kann nicht erzeugt werden."
+msgstr "Ungültige Info.plist, kann nicht geladen werden."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "Ordner konnte nicht erstellt werden."
+msgstr "Erzeugen von Unterordner „%s“ fehlgeschlagen."
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
-msgstr ""
+msgstr "Entpacken von thin binary fehlgeschlagen."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Ungültiger Basispfad."
+msgstr "Ungültiges Binärformat."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "Bereits signiert!"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to process nested resources."
-msgstr "Laden der Ressource gescheitert."
+msgstr "Verarbeiten verschachtelter Ressourcen fehlgeschlagen."
#: platform/osx/export/codesign.cpp
msgid "Failed to create _CodeSignature subfolder."
-msgstr ""
+msgstr "Erzeugen von _CodeSignature-Unterordner fehlgeschlagen."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to get CodeResources hash."
-msgstr "Laden der Ressource gescheitert."
+msgstr "Erhalten von CodeResources-Hash fehlgeschlagen."
#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid entitlements file."
-msgstr "Ungültige Dateiendung."
+msgstr "Ungültige entitlements-Datei."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "Ungültige Dateiendung."
+msgstr "Ungültige ausführbare Datei."
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
-msgstr ""
+msgstr "Signatur-Lade-Kommando kann nicht vergrößert/verkleinert werden."
#: platform/osx/export/codesign.cpp
msgid "Failed to create fat binary."
-msgstr ""
+msgstr "Erstellen von fat binary fehlgeschlagen."
#: platform/osx/export/codesign.cpp
msgid "Unknown bundle type."
-msgstr ""
+msgstr "Unbekannter bundle-Typ."
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "Unbekannter Objekttyp."
#: platform/osx/export/export.cpp
msgid ""
"Note: The notarization process generally takes less than an hour. When the "
"process is completed, you'll receive an email."
msgstr ""
+"Hinweis: Der Beglaubigungsprozess dauert gewöhnlich weniger als eine Stunde. "
+"Nach Ablauf wird eine Bestätigungsmail versandt."
#: platform/osx/export/export.cpp
msgid ""
"You can check progress manually by opening a Terminal and running the "
"following command:"
msgstr ""
+"Der Fortschritt kann manuell mithilfe des folgenden Befehls in der Konsole "
+"überprüft werden:"
#: platform/osx/export/export.cpp
msgid ""
"Run the following command to staple the notarization ticket to the exported "
"application (optional):"
msgstr ""
+"Mit folgendem Befehl kann die Beglaubigungsbescheinigung an die exportierte "
+"Anwendung geheftet werden (optional):"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "Keine Symbole gefunden."
+msgstr "Keine Identität gefunden."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Creating app bundle"
-msgstr "Erzeuge Miniaturansicht"
+msgstr "Erzeuge App-Bundle"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"Konnte keine APK-Vorlage zum Exportieren finden:\n"
-"%s"
+msgstr "Es konnte keine Vorlagen-App zum Exportieren gefunden werden:"
#: platform/osx/export/export.cpp
msgid ""
"Relative symlinks are not supported on this OS, the exported project might "
"be broken!"
msgstr ""
+"Relative symbolische Links werden von diesem Betriebssystem nicht "
+"unterstützt, das exportierte Projekt könnte fehlerhaft sein!"
#: platform/osx/export/export.cpp
msgid ""
"Requested template binary '%s' not found. It might be missing from your "
"template archive."
msgstr ""
+"Benötigte Vorlagen-Binary ‚%s‘ nicht gefunden. Es könnte im Vorlagen-Archiv "
+"fehlen."
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "Erzeuge PKG"
#: platform/osx/export/export.cpp
msgid ""
"Ad-hoc signed applications require the 'Disable Library Validation' "
"entitlement to load dynamic libraries."
msgstr ""
+"Ad-hoc signierte Anwendungen benötigen die ‚Disable Library Validation‘-"
+"Berechtigung um dynamische Bibliotheken zu laden."
#: platform/osx/export/export.cpp
msgid "Code signing bundle"
-msgstr ""
+msgstr "Codesignierungs-Bundle"
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "Erstelle DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
-msgstr ""
+msgstr "Codesignierendes DMG"
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "Erstelle ZIP"
#: platform/osx/export/export.cpp
msgid ""
"Notarization requires the app to be archived first, select the DMG or ZIP "
"export format instead."
msgstr ""
+"Der Beglaubigungsprozess setzt voraus dass die Anwendung archiviert wurde. "
+"Das DMG- oder ZIP-Exportformat sollte stattdessen ausgewählt werden."
#: platform/osx/export/export.cpp
msgid "Sending archive for notarization"
-msgstr ""
+msgstr "Sende Archiv zur Beglaubigung"
#: platform/osx/export/export.cpp
msgid "Invalid bundle identifier:"
@@ -14511,31 +14553,36 @@ msgid ""
"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
"signing is limited to ad-hoc signature only."
msgstr ""
+"Warnung: Das eingebettete „codesign“ ist in den Editoreinstellungen "
+"ausgewählt. Codesignierung ist eingeschränkt auf Ad-hoc-Signaturen."
#: platform/osx/export/export.cpp
msgid ""
"Warning: Xcode command line tools are not installed, using built-in "
"\"codesign\". Code signing is limited to ad-hoc signature only."
msgstr ""
+"Warnung: Die Xcode-Kommandozeilenprogramme sind nicht installiert, verwende "
+"eingebautes „codesign“. Codesignierung ist eingeschränkt auf Ad-hoc-"
+"Signaturen."
#: platform/osx/export/export.cpp
msgid "Notarization: Notarization with an ad-hoc signature is not supported."
msgstr ""
+"Beglaubigung: Beglaubigungen von Ad-hoc-Signaturen werden nicht erstellt."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Code signing is required for notarization."
-msgstr "Beglaubigung: Code-Signierung wird benötigt."
+msgstr "Beglaubigung: Code-Signierung wird zur Beglaubigung benötigt."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Hardened runtime is required for notarization."
-msgstr "Beglaubigung: Abgehärtete Ausführungsumgebung wird benötigt."
+msgstr ""
+"Beglaubigung: Abgehärtete Ausführungsumgebung wird zur Beglaubigung benötigt."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Timestamp runtime is required for notarization."
-msgstr "Beglaubigung: Abgehärtete Ausführungsumgebung wird benötigt."
+msgstr ""
+"Beglaubigung: Zeitstempel-Ausführungsumgebung wird für Beglaubigung benötigt."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
@@ -14550,63 +14597,87 @@ msgid ""
"Warning: Notarization is disabled. The exported project will be blocked by "
"Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Warnung: Beglaubigungen sind deaktiviert. Das exportierte Projekt wird von "
+"Gatekeeper geblockt werden, falls es von einer unbekannten Quelle "
+"heruntergeladen wird."
#: platform/osx/export/export.cpp
msgid ""
"Code signing is disabled. The exported project will not run on Macs with "
"enabled Gatekeeper and Apple Silicon powered Macs."
msgstr ""
+"Code-Signierung ist deaktiviert. Das exportierte Projekt wird sich nicht auf "
+"Macs mit aktiviertem Gatekeeper oder Apple-Silicon-Macs ausführen lassen."
#: platform/osx/export/export.cpp
msgid ""
"Hardened Runtime is not compatible with ad-hoc signature, and will be "
"disabled!"
msgstr ""
+"Die abgehärtete Laufzeitumgebung ist nicht mit Ad-hoc-Signaturen kompatibel, "
+"und wird deaktiviert!"
#: platform/osx/export/export.cpp
msgid ""
"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
msgstr ""
+"Zeitstempel sind nicht mit Ad-hoc-Signaturen kompatibel, und werden "
+"deaktiviert!"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Notarization is not supported from this OS. The exported project "
"will be blocked by Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Warnung: Beglaubigungen werden von diesem Betriebssystem nicht unterstützt. "
+"Das exportierte Projekt wird von Gatekeeper blockiert, falls es aus einer "
+"unbekannten Quelle geladen wurde."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
msgstr ""
+"Privatsphäre: Mikrophonzugriff ist aktiviert, aber keine "
+"Nutzungsbeschreibung angegeben."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
msgstr ""
+"Privatsphäre: Kamerazugriff ist aktiviert, aber keine Nutzungsbeschreibung "
+"angegeben."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
msgstr ""
+"Privatsphäre: Standortzugriff ist aktiviert, aber keine Nutzungsbeschreibung "
+"angegeben."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
msgstr ""
+"Privatsphäre: Adressbuchzugriff ist aktiviert, aber keine "
+"Nutzungsbeschreibung angegeben."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
msgstr ""
+"Privatsphäre: Kalenderzugriff ist aktiviert, aber keine Nutzungsbeschreibung "
+"angegeben."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Photo library access is enabled, but usage description is not "
"specified."
msgstr ""
+"Privatsphäre: Photobibliothekszugriff ist aktiviert, aber keine "
+"Nutzungsbeschreibung angegeben."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14665,21 +14736,21 @@ msgid ""
"The rcedit tool must be configured in the Editor Settings (Export > Windows "
"> Rcedit) to change the icon or app information data."
msgstr ""
+"Das Rcedit-Werkzeug muss in den Editoreinstellungen (Export > Windows > "
+"Rcedit) festgelegt werden um Icon- oder Anwendungsinformation festlegen zu "
+"können."
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "Ungültiger Pfad."
+msgstr "Ungültiger Icon-Pfad:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "Ungültige Dateiendung."
+msgstr "Ungültige Dateiversion:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "Ungültige Produkt-GUID."
+msgstr "Ungültige Produktversion:"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -15443,14 +15514,13 @@ msgstr ""
"AnimationTree."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Apply color\n"
"RMB: Remove preset"
msgstr ""
"Farbe: #%s\n"
-"LMT: Farbe festlegen\n"
+"LMT: Farbe anwenden\n"
"RMT: Voreinstellung entfernen"
#: scene/gui/color_picker.cpp
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index f9d1c47b88..ae2e0321ff 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -1432,6 +1432,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2781,7 +2785,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5423,6 +5427,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7848,7 +7856,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8723,6 +8736,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8769,6 +8786,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8785,7 +8814,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9461,18 +9500,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12026,6 +12053,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13309,6 +13340,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/el.po b/editor/translations/el.po
index d3cbb4b072..ebfb007a9d 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -1511,6 +1511,11 @@ msgstr "Φόρτωση προεπιλεγμένης διάταξης διαύλ
msgid "Create a new Bus Layout."
msgstr "Δημιουργία νέας διάταξης διαύλων ήχου."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Άνοιγμα διάταξης διαύλων ήχου"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Μη έγκυρο όνομα."
@@ -2976,7 +2981,7 @@ msgstr "Εναλλαγή λειτουργίας χωρίς περισπασμο
msgid "Add a new scene."
msgstr "Προσθήκη νέας σκηνής."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Σκηνή"
@@ -5792,6 +5797,10 @@ msgid "Bake Lightmaps"
msgstr "Προετοιμασία Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Επιλογή Αρχείου Προτύπων:"
@@ -8356,7 +8365,13 @@ msgid "Cinematic Preview"
msgstr "Κινηματογραφική Προεπισκόπηση"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Δεν είναι διαθέσιμο στην απόδοση GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9304,6 +9319,11 @@ msgstr "Διαγραφή πόρου"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Μετονομασία πόρου"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Εισαγωγή θέματος"
@@ -9358,6 +9378,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Προσθήκη στοιχείου"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Ορισμός τύπου μεταβλητής"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Αλλαγή βασικού τύπου"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Φόρτωση προεπιλογής"
@@ -9376,8 +9411,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Προσθήκη στοιχείου"
+msgid "Base Type"
+msgstr "Αλλαγή βασικού τύπου"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -10105,18 +10150,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Αντιστοιχίες:"
@@ -12882,6 +12915,11 @@ msgid "Stack Frames"
msgstr "Στοίβαξη καρέ"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Φιλτράρισμα πλακιδίων"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Πρόγραμμα Δημιουργίας Προφίλ"
@@ -14270,9 +14308,10 @@ msgstr "Άκυρο όνομα πακέτου:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Εσφαλμένη λειτουργική μονάδα «GodotPaymentV3» στην ρύθμιση εργου «Android/"
-"Modules» (άλλαξε στην Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/en_Shaw.po b/editor/translations/en_Shaw.po
new file mode 100644
index 0000000000..1251476928
--- /dev/null
+++ b/editor/translations/en_Shaw.po
@@ -0,0 +1,14652 @@
+# English (Shavian) translation of the Godot Engine editor.
+# 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.
+#
+# haley <haleyhalcyon@gmail.com>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: Godot Engine editor\n"
+"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
+"PO-Revision-Date: 2022-02-26 10:27+0000\n"
+"Last-Translator: haley <haleyhalcyon@gmail.com>\n"
+"Language-Team: English (Shavian) <https://hosted.weblate.org/projects/godot-"
+"engine/godot/en-Shaw/>\n"
+"Language: en-Shaw\n"
+"MIME-Version: 1.0\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.11.1-dev\n"
+
+#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
+#: modules/visual_script/visual_script_builtin_funcs.cpp
+msgid "Invalid type argument to convert(), use TYPE_* constants."
+msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑑𐑲𐑐 𐑸𐑜𐑘𐑩𐑥𐑩𐑯𐑑 𐑑 convert(), 𐑿𐑟 TYPE_* 𐑒𐑪𐑯𐑕𐑑𐑩𐑒𐑑𐑕."
+
+#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
+msgid "Expected a string of length 1 (a character)."
+msgstr "𐑦𐑒𐑕𐑐𐑧𐑒𐑑𐑩𐑛 𐑩 𐑕𐑑𐑮𐑦𐑙 𐑝 𐑤𐑧𐑙𐑔 1 (𐑩 𐑒𐑨𐑮𐑩𐑒𐑑𐑼)."
+
+#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
+#: modules/mono/glue/gd_glue.cpp
+#: modules/visual_script/visual_script_builtin_funcs.cpp
+msgid "Not enough bytes for decoding bytes, or invalid format."
+msgstr "𐑯𐑪𐑑 𐑦𐑯𐑳𐑓 𐑚𐑲𐑑𐑕 𐑓 𐑛𐑰𐑒𐑴𐑛𐑦𐑙 𐑚𐑲𐑑𐑕, 𐑹 𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑓𐑹𐑥𐑨𐑑."
+
+#: core/math/expression.cpp
+msgid "Invalid input %i (not passed) in expression"
+msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑦𐑯𐑐𐑫𐑑 %i (𐑯𐑪𐑑 𐑐𐑭𐑕𐑑) 𐑦𐑯 𐑦𐑒𐑕𐑐𐑮𐑧𐑖𐑩𐑯"
+
+#: core/math/expression.cpp
+msgid "self can't be used because instance is null (not passed)"
+msgstr "self 𐑒𐑭𐑯𐑑 𐑚𐑰 𐑿𐑟𐑛 𐑚𐑦𐑒𐑪𐑟 𐑦𐑯𐑕𐑑𐑩𐑯𐑕 𐑦𐑟 𐑯𐑳𐑤 (𐑯𐑪𐑑 𐑐𐑭𐑕𐑑)"
+
+#: core/math/expression.cpp
+msgid "Invalid operands to operator %s, %s and %s."
+msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑪𐑐𐑼𐑨𐑯𐑛𐑟 𐑑 𐑪𐑐𐑼𐑱𐑑𐑼 %s, %s 𐑯 %s."
+
+#: core/math/expression.cpp
+msgid "Invalid index of type %s for base type %s"
+msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑦𐑯𐑛𐑧𐑒𐑕 𐑝 𐑑𐑲𐑐 %s 𐑓 𐑚𐑱𐑕 𐑑𐑲𐑐 %s"
+
+#: core/math/expression.cpp
+msgid "Invalid named index '%s' for base type %s"
+msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑯𐑱𐑥𐑛 𐑦𐑯𐑛𐑧𐑒𐑕 '%s' 𐑓 𐑚𐑱𐑕 𐑑𐑲𐑐 %s"
+
+#: core/math/expression.cpp
+msgid "Invalid arguments to construct '%s'"
+msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑸𐑜𐑘𐑩𐑥𐑩𐑯𐑑𐑕 𐑑 𐑒𐑩𐑯𐑕𐑑𐑮𐑳𐑒𐑑 '%s'"
+
+#: core/math/expression.cpp
+msgid "On call to '%s':"
+msgstr "𐑪𐑯 𐑒𐑷𐑤 𐑑 '%s':"
+
+#: core/ustring.cpp
+msgid "B"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "KiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "MiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "GiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "TiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "PiB"
+msgstr ""
+
+#: core/ustring.cpp
+msgid "EiB"
+msgstr ""
+
+#: editor/animation_bezier_editor.cpp
+msgid "Free"
+msgstr "𐑓𐑮𐑰"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Balanced"
+msgstr "𐑚𐑨𐑮𐑩𐑯𐑕𐑑"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Mirror"
+msgstr "𐑥𐑦𐑮𐑼"
+
+#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
+msgid "Time:"
+msgstr "𐑑𐑲𐑥:"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Value:"
+msgstr "𐑝𐑨𐑤𐑿:"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Insert Key Here"
+msgstr "𐑦𐑯𐑕𐑻𐑑 𐑒𐑰 𐑣𐑽"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Duplicate Selected Key(s)"
+msgstr "𐑛𐑿𐑐𐑤𐑦𐑒𐑱𐑑 𐑕𐑦𐑤𐑧𐑒𐑑𐑩𐑛 𐑒𐑰(𐑟)"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Delete Selected Key(s)"
+msgstr "𐑛𐑦𐑤𐑰𐑑 𐑕𐑦𐑤𐑧𐑒𐑑𐑩𐑛 𐑒𐑰(𐑟)"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Add Bezier Point"
+msgstr "𐑨𐑛 𐑚𐑧𐑟𐑦𐑱 𐑐𐑶𐑯𐑑"
+
+#: editor/animation_bezier_editor.cpp
+msgid "Move Bezier Points"
+msgstr "𐑥𐑵𐑝 𐑚𐑧𐑟𐑦𐑱 𐑐𐑶𐑯𐑑𐑕"
+
+#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
+msgid "Anim Duplicate Keys"
+msgstr "𐑛𐑿𐑐𐑤𐑦𐑒𐑱𐑑 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑟"
+
+#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
+msgid "Anim Delete Keys"
+msgstr "𐑛𐑦𐑤𐑰𐑑 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑟"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Change Keyframe Time"
+msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑑𐑲𐑥"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Change Transition"
+msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑑𐑮𐑨𐑯𐑟𐑦𐑖𐑩𐑯"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Change Transform"
+msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑑𐑮𐑨𐑯𐑕𐑓𐑹𐑥"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Change Keyframe Value"
+msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑝𐑨𐑤𐑿"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Change Call"
+msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑷𐑤"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Multi Change Keyframe Time"
+msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑑𐑲𐑥𐑟"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Multi Change Transition"
+msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑑𐑮𐑨𐑯𐑟𐑦𐑖𐑩𐑯𐑟"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Multi Change Transform"
+msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑑𐑮𐑨𐑯𐑕𐑓𐑹𐑥"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Multi Change Keyframe Value"
+msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑝𐑨𐑤𐑿𐑟"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Multi Change Call"
+msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑒𐑷𐑤𐑟"
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Length"
+msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑧𐑙𐑒𐑔"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑵𐑐"
+
+#: editor/animation_track_editor.cpp
+msgid "Property Track"
+msgstr "𐑐𐑮𐑪𐑐𐑼𐑑𐑦 𐑑𐑮𐑨𐑒"
+
+#: editor/animation_track_editor.cpp
+msgid "3D Transform Track"
+msgstr "3-𐑛 𐑑𐑮𐑨𐑯𐑕𐑓𐑹𐑥 𐑑𐑮𐑨𐑒"
+
+#: editor/animation_track_editor.cpp
+msgid "Call Method Track"
+msgstr "𐑒𐑷𐑤 𐑥𐑧𐑔𐑩𐑛 𐑑𐑮𐑨𐑒"
+
+#: editor/animation_track_editor.cpp
+msgid "Bezier Curve Track"
+msgstr "𐑚𐑧𐑟𐑦𐑱 𐑒𐑻𐑝 𐑑𐑮𐑨𐑒"
+
+#: editor/animation_track_editor.cpp
+msgid "Audio Playback Track"
+msgstr "𐑷𐑛𐑦𐑴 𐑐𐑮𐑱𐑚𐑨𐑒 𐑑𐑮𐑨𐑒"
+
+#: editor/animation_track_editor.cpp
+msgid "Animation Playback Track"
+msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑐𐑤𐑱𐑚𐑨𐑒 𐑑𐑮𐑨𐑒"
+
+#: editor/animation_track_editor.cpp
+msgid "Animation length (frames)"
+msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑧𐑙𐑒𐑔 (𐑓𐑮𐑱𐑥𐑟)"
+
+#: editor/animation_track_editor.cpp
+msgid "Animation length (seconds)"
+msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑧𐑙𐑒𐑔 (𐑕𐑧𐑒𐑩𐑯𐑛𐑟)"
+
+#: editor/animation_track_editor.cpp
+msgid "Add Track"
+msgstr "𐑨𐑛 𐑑𐑮𐑨𐑒"
+
+#: editor/animation_track_editor.cpp
+msgid "Animation Looping"
+msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑵𐑐𐑦𐑙"
+
+#: editor/animation_track_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Functions:"
+msgstr "𐑓𐑳𐑙𐑒𐑖𐑩𐑯𐑟:"
+
+#: editor/animation_track_editor.cpp
+msgid "Audio Clips:"
+msgstr "𐑷𐑛𐑦𐑴 𐑒𐑤𐑦𐑐𐑕:"
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Clips:"
+msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑤𐑦𐑐𐑕:"
+
+#: editor/animation_track_editor.cpp
+msgid "Change Track Path"
+msgstr "𐑗𐑱𐑯𐑡 𐑑𐑮𐑨𐑒 𐑐𐑭𐑔"
+
+#: editor/animation_track_editor.cpp
+msgid "Toggle this track on/off."
+msgstr "𐑑𐑪𐑜𐑩𐑤 𐑞𐑦𐑕 𐑑𐑮𐑨𐑒 𐑪𐑯/𐑪𐑓."
+
+#: editor/animation_track_editor.cpp
+msgid "Update Mode (How this property is set)"
+msgstr "𐑳𐑐𐑛𐑱𐑑 𐑥𐑴𐑛 (𐑣𐑬 𐑞𐑦𐑕 𐑐𐑮𐑪𐑐𐑼𐑑𐑦 𐑦𐑟 𐑕𐑧𐑑)"
+
+#: editor/animation_track_editor.cpp
+msgid "Interpolation Mode"
+msgstr "𐑦𐑯𐑑𐑻𐑐𐑩𐑤𐑱𐑖𐑩𐑯 𐑥𐑴𐑛"
+
+#: editor/animation_track_editor.cpp
+msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
+msgstr "𐑤𐑵𐑐 𐑮𐑨𐑐 𐑥𐑴𐑛 (𐑦𐑯𐑑𐑻𐑐𐑩𐑤𐑱𐑑 𐑧𐑯𐑛 𐑢𐑦𐑞 𐑚𐑦𐑜𐑦𐑯𐑦𐑙 𐑪𐑯 𐑤𐑵𐑐)"
+
+#: editor/animation_track_editor.cpp
+msgid "Remove this track."
+msgstr "𐑮𐑦𐑥𐑵𐑝 𐑞𐑦𐑕 𐑑𐑮𐑨𐑒."
+
+#: editor/animation_track_editor.cpp
+msgid "Time (s): "
+msgstr "𐑑𐑲𐑥(𐑟): "
+
+#: editor/animation_track_editor.cpp
+msgid "Toggle Track Enabled"
+msgstr "𐑑𐑪𐑜𐑩𐑤 𐑑𐑮𐑨𐑒 𐑦𐑯𐑱𐑚𐑩𐑤𐑛"
+
+#: editor/animation_track_editor.cpp
+msgid "Continuous"
+msgstr "𐑒𐑩𐑯𐑑𐑦𐑯𐑘𐑫𐑩𐑕"
+
+#: editor/animation_track_editor.cpp
+msgid "Discrete"
+msgstr "𐑛𐑦𐑕𐑒𐑮𐑰𐑑"
+
+#: editor/animation_track_editor.cpp
+msgid "Trigger"
+msgstr "𐑑𐑮𐑦𐑜𐑼"
+
+#: editor/animation_track_editor.cpp
+msgid "Capture"
+msgstr "𐑒𐑨𐑐𐑗𐑼"
+
+#: editor/animation_track_editor.cpp
+msgid "Nearest"
+msgstr "𐑯𐑽𐑩𐑕𐑑"
+
+#: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp
+#: editor/property_editor.cpp
+msgid "Linear"
+msgstr "𐑤𐑦𐑯𐑽"
+
+#: editor/animation_track_editor.cpp
+msgid "Cubic"
+msgstr "𐑒𐑿𐑚𐑦𐑒"
+
+#: editor/animation_track_editor.cpp
+msgid "Clamp Loop Interp"
+msgstr "𐑒𐑤𐑨𐑥𐑐 𐑤𐑵𐑐 𐑦𐑯𐑑𐑻𐑐"
+
+#: editor/animation_track_editor.cpp
+msgid "Wrap Loop Interp"
+msgstr "𐑮𐑨𐑐 𐑤𐑵𐑐 𐑦𐑯𐑑𐑻𐑐"
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+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 ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Update Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Interpolation Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Loop Mode"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Remove Anim Track"
+msgstr ""
+
+#. TRANSLATORS: %s will be replaced by a phrase describing the target of track.
+#: editor/animation_track_editor.cpp
+msgid "Create NEW track for %s and insert key?"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Create %d NEW tracks and insert keys?"
+msgstr ""
+
+#: editor/animation_track_editor.cpp editor/create_dialog.cpp
+#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
+#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+#: editor/plugins/version_control_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#: editor/script_create_dialog.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Create"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Insert"
+msgstr ""
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+msgid "node '%s'"
+msgstr ""
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+msgid "animation"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "AnimationPlayer can't animate itself, only other players."
+msgstr ""
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+msgid "property '%s'"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Create & Insert"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Insert Track & Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Insert Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Change Animation Step"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Rearrange Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Transform tracks only apply to Spatial-based nodes."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid ""
+"Audio tracks can only point to nodes of type:\n"
+"-AudioStreamPlayer\n"
+"-AudioStreamPlayer2D\n"
+"-AudioStreamPlayer3D"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Animation tracks can only point to AnimationPlayer nodes."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Not possible to add a new track without a root"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Invalid track for Bezier (no suitable sub-properties)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Add Bezier Track"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Track path is invalid, so can't add a key."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Track is not of type Spatial, can't insert key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Add Transform Track Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Add Track Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Track path is invalid, so can't add a method key."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Add Method Track Key"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Method not found in object: "
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Move Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Clipboard is empty!"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Paste Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim Scale Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid ""
+"This option does not work for Bezier editing, as it's only a single track."
+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"
+"\n"
+"To enable the ability to add custom tracks, navigate to the scene's import "
+"settings and set\n"
+"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom "
+"Tracks\", then re-import.\n"
+"Alternatively, use an import preset that imports animations to separate "
+"files."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Warning: Editing imported animation"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Select an AnimationPlayer node to create and edit animations."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Only show tracks from nodes selected in tree."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Group tracks by node or display them as plain list."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Snap:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Animation step value."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Seconds"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "FPS"
+msgstr ""
+
+#: editor/animation_track_editor.cpp editor/editor_plugin_settings.cpp
+#: editor/editor_resource_picker.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp editor/project_manager.cpp
+#: editor/project_settings_editor.cpp editor/property_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Animation properties."
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Copy Tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Scale Selection"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Scale From Cursor"
+msgstr ""
+
+#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Duplicate Selection"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Duplicate Transposed"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Delete Selection"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Go to Next Step"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Go to Previous Step"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Apply Reset"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Optimize Animation"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Clean-Up Animation"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Pick the node that will be animated:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Use Bezier Curves"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Create RESET Track(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Anim. Optimizer"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Max. Linear Error:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Max. Angular Error:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Max Optimizable Angle:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Optimize"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Remove invalid keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Remove unresolved and empty tracks"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Clean-up all animations"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Clean-Up Animation(s) (NO UNDO!)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Clean-Up"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Scale Ratio:"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Select Tracks to Copy"
+msgstr ""
+
+#: editor/animation_track_editor.cpp editor/editor_log.cpp
+#: editor/editor_resource_picker.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
+#: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Copy"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
+msgid "Select All/None"
+msgstr ""
+
+#: editor/animation_track_editor_plugins.cpp
+msgid "Add Audio Track Clip"
+msgstr ""
+
+#: editor/animation_track_editor_plugins.cpp
+msgid "Change Audio Track Clip Start Offset"
+msgstr ""
+
+#: editor/animation_track_editor_plugins.cpp
+msgid "Change Audio Track Clip End Offset"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Resize Array"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Change Array Value Type"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Change Array Value"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Go to Line"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Line Number:"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "%d replaced."
+msgstr ""
+
+#: editor/code_editor.cpp editor/editor_help.cpp
+msgid "%d match."
+msgstr ""
+
+#: editor/code_editor.cpp editor/editor_help.cpp
+msgid "%d matches."
+msgstr ""
+
+#: editor/code_editor.cpp editor/find_in_files.cpp
+msgid "Match Case"
+msgstr ""
+
+#: editor/code_editor.cpp editor/find_in_files.cpp
+msgid "Whole Words"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replace"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replace All"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Selection Only"
+msgstr ""
+
+#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+msgid "Standard"
+msgstr ""
+
+#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Toggle Scripts Panel"
+msgstr ""
+
+#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+#: editor/plugins/texture_region_editor_plugin.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
+msgid "Zoom In"
+msgstr ""
+
+#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+#: editor/plugins/texture_region_editor_plugin.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
+msgid "Zoom Out"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Reset Zoom"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Warnings"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Line and column numbers."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Method in target node must be specified."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Method name must be a valid identifier."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid ""
+"Target method not found. Specify a valid method or attach a script to the "
+"target node."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect to Node:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect to Script:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "From Signal:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Scene does not contain any script."
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
+#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
+msgid "Add"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/dependency_editor.cpp
+#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/version_control_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
+#: editor/project_settings_editor.cpp
+msgid "Remove"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Add Extra Call Argument:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Extra Call Arguments:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Receiver Method:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Advanced"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Deferred"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid ""
+"Defers the signal, storing it in a queue and only firing it at idle time."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Oneshot"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Disconnects the signal after its first emission."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Cannot connect signal"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/dependency_editor.cpp
+#: editor/export_template_manager.cpp editor/groups_editor.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/project_settings_editor.cpp editor/property_editor.cpp
+#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Close"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Signal:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect '%s' to '%s'"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Disconnect '%s' from '%s'"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Disconnect all from signal: '%s'"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect..."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Disconnect"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect a Signal to a Method"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Edit Connection:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
+msgid "Signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Are you sure you want to remove all connections from this signal?"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Disconnect All"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Edit..."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Go to Method"
+msgstr ""
+
+#: editor/create_dialog.cpp
+msgid "Change %s Type"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/project_settings_editor.cpp
+msgid "Change"
+msgstr ""
+
+#: editor/create_dialog.cpp
+msgid "Create New %s"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp
+msgid "No results for \"%s\"."
+msgstr ""
+
+#: editor/create_dialog.cpp editor/property_selector.cpp
+msgid "No description available for %s."
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp
+msgid "Favorites:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
+msgid "Recent:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
+#: modules/visual_script/visual_script_property_selector.cpp
+msgid "Search:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp
+#: modules/visual_script/visual_script_property_selector.cpp
+msgid "Matches:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_feature_profile.cpp
+#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp
+#: modules/visual_script/visual_script_property_selector.cpp
+msgid "Description:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Search Replacement For:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependencies For:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"Scene '%s' is currently being edited.\n"
+"Changes will only take effect when reloaded."
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"Resource '%s' is in use.\n"
+"Changes will only take effect when reloaded."
+msgstr ""
+
+#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dependencies"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
+msgid "Resource"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
+#: editor/project_manager.cpp editor/project_settings_editor.cpp
+msgid "Path"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependencies:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Fix Broken"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependency Editor"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Search Replacement Resource:"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
+#: editor/editor_help_search.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/script_create_dialog.cpp
+#: modules/visual_script/visual_script_property_selector.cpp
+#: scene/gui/file_dialog.cpp
+msgid "Open"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Owners Of:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"Remove the selected files from the project? (Cannot be undone.)\n"
+"Depending on your filesystem configuration, the files will either be moved "
+"to the system trash or deleted permanently."
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"The files being removed are required by other resources in order for them to "
+"work.\n"
+"Remove them anyway? (Cannot be undone.)\n"
+"Depending on your filesystem configuration, the files will either be moved "
+"to the system trash or deleted permanently."
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Cannot remove:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Error loading:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Load failed due to missing dependencies:"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_node.cpp
+msgid "Open Anyway"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Which action should be taken?"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Fix Dependencies"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Errors loading!"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Permanently delete %d item(s)? (No undo!)"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Show Dependencies"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Orphan Resource Explorer"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp
+#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+msgid "Delete"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Owns"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Resources Without Explicit Ownership:"
+msgstr ""
+
+#: editor/dictionary_property_edit.cpp
+msgid "Change Dictionary Key"
+msgstr ""
+
+#: editor/dictionary_property_edit.cpp
+msgid "Change Dictionary Value"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Thanks from the Godot community!"
+msgstr ""
+
+#: editor/editor_about.cpp editor/editor_node.cpp editor/project_manager.cpp
+msgid "Click to copy."
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Godot Engine contributors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Project Founders"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Lead Developer"
+msgstr ""
+
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
+#: editor/editor_about.cpp
+msgid "Project Manager "
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Developers"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Authors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Platinum Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Gold Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Mini Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Gold Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Silver Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "License"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Third-party Licenses"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid ""
+"Godot Engine relies on a number of third-party free and open source "
+"libraries, all compatible with the terms of its MIT license. The following "
+"is an exhaustive list of all such third-party components with their "
+"respective copyright statements and license terms."
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "All Components"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Components"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Licenses"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Error opening asset file for \"%s\" (not in ZIP format)."
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "%s (already exists)"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Contents of asset \"%s\" - No files conflict with your project:"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Uncompressing Assets"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "The following files failed extraction from asset \"%s\":"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "(and %s more files)"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Asset \"%s\" installed successfully!"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Success!"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp editor/editor_node.cpp
+msgid "Install"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Asset Installer"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Speakers"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Rename Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Solo"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Mute"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Bypass Effects"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Select Audio Bus Send"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Audio Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Move Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Drag & drop to rearrange."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Solo"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Mute"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Bypass"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Bus Options"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/scene_tree_dock.cpp
+msgid "Duplicate"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Reset Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Master bus can't be deleted!"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Duplicate Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Reset Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Move Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Save Audio Bus Layout As..."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Location for New Layout..."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Open Audio Bus Layout"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "There is no '%s' file."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Layout"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Invalid file, not an audio bus layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Error saving file: %s"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add a new Audio Bus to this layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/editor_resource_picker.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
+#: editor/script_create_dialog.cpp
+msgid "Load"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Load an existing Bus Layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Save As"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Save this Bus Layout to a file."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/import_dock.cpp
+msgid "Load Default"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Load the default Bus Layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Create a new Bus Layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+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 ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Must not collide with an existing engine class name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Must not collide with an existing built-in type name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Must not collide with an existing global constant name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Keyword cannot be used as an autoload name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Autoload '%s' already exists!"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Rename Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Toggle AutoLoad Globals"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Move Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Remove Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
+msgid "Enable"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Rearrange Autoloads"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Can't add autoload:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "%s is an invalid path. File does not exist."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "%s is an invalid path. Not in resource path (res://)."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Add AutoLoad"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
+#: editor/editor_plugin_settings.cpp
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Path:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Node Name:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp
+#: editor/editor_plugin_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
+msgid "Name"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Global Variable"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Paste Params"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Updating Scene"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Storing local changes..."
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Updating scene..."
+msgstr ""
+
+#: editor/editor_data.cpp editor/editor_resource_picker.cpp
+msgid "[empty]"
+msgstr ""
+
+#: 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 ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Please select a base directory first."
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Choose a Directory"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp editor/project_manager.cpp
+#: scene/gui/file_dialog.cpp
+msgid "Create Folder"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
+#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
+msgid "Name:"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
+msgid "Could not create folder."
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Choose"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid "Storing File:"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid "No export template found at the expected path:"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid "Packing"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
+"Etc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' texture compression for GLES3. Enable "
+"'Import Etc 2' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
+"'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
+"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid ""
+"Target platform requires 'PVRTC' texture compression for the driver fallback "
+"to GLES2.\n"
+"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback "
+"Enabled'."
+msgstr ""
+
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
+#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
+#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
+msgid "Custom debug template not found."
+msgstr ""
+
+#: editor/editor_export.cpp platform/android/export/export_plugin.cpp
+#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
+#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
+msgid "Custom release template not found."
+msgstr ""
+
+#: editor/editor_export.cpp platform/javascript/export/export.cpp
+msgid "Template file not found:"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "3D Editor"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Script Editor"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Asset Library"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Scene Tree Editing"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Node Dock"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "FileSystem Dock"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Allows to view and edit 3D scenes."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Allows to edit scripts using the integrated script editor."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Provides built-in access to the Asset Library."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Allows editing the node hierarchy in the Scene dock."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid ""
+"Allows to work with signals and groups of the node selected in the Scene "
+"dock."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Allows to browse the local file system via a dedicated dock."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid ""
+"Allows to configure import settings for individual assets. Requires the "
+"FileSystem dock to function."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "(current)"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "(none)"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Remove currently selected profile, '%s'? Cannot be undone."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Profile must be a valid filename and must not contain '.'"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Profile with this name already exists."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "(Editor Disabled, Properties Disabled)"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "(Properties Disabled)"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "(Editor Disabled)"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Class Options:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Enable Contextual Editor"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Class Properties:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Main Features:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Nodes and Classes:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "File '%s' format is invalid, import aborted."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid ""
+"Profile '%s' already exists. Remove it first before importing, import "
+"aborted."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Error saving profile to path: '%s'."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Reset to Default"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Current Profile:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Create Profile"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Remove Profile"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Available Profiles:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Make Current"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp editor/editor_node.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
+msgid "Import"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp editor/project_export.cpp
+msgid "Export"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Configure Selected Profile:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Extra Options:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Create or import a profile to edit available classes and properties."
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "New profile name:"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Godot Feature Profile"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Profile(s)"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Export Profile"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Manage Editor Feature Profiles"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Select Current Folder"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "File exists, overwrite?"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Select This Folder"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Open in File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/project_manager.cpp
+msgid "Show in File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder..."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/find_in_files.cpp
+msgid "Refresh"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "All Recognized"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "All Files (*)"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a File"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open File(s)"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a Directory"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a File or Directory"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/editor_resource_picker.cpp editor/import_defaults_editor.cpp
+#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp scene/gui/file_dialog.cpp
+msgid "Save"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Save a File"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Move Favorite Up"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Move Favorite Down"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go to previous folder."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go to next folder."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Go to parent folder."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Refresh files."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "(Un)favorite current folder."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Toggle the visibility of hidden files."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "View items as a grid of thumbnails."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "View items as a list."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Directories & Files:"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
+#: editor/plugins/style_box_editor_plugin.cpp editor/rename_dialog.cpp
+msgid "Preview:"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+#: editor/plugins/version_control_editor_plugin.cpp scene/gui/file_dialog.cpp
+msgid "File:"
+msgstr ""
+
+#: editor/editor_file_system.cpp
+msgid "ScanSources"
+msgstr ""
+
+#: editor/editor_file_system.cpp
+msgid ""
+"There are multiple importers for different types pointing to file %s, import "
+"aborted"
+msgstr ""
+
+#: editor/editor_file_system.cpp
+msgid "(Re)Importing Assets"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Top"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Class:"
+msgstr ""
+
+#: editor/editor_help.cpp editor/scene_tree_editor.cpp
+#: editor/script_create_dialog.cpp
+msgid "Inherits:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Inherited by:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Description"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Online Tutorials"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Properties"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "overrides %s:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "default:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Methods"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Theme Properties"
+msgstr ""
+
+#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
+msgid "Colors"
+msgstr ""
+
+#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
+msgid "Constants"
+msgstr ""
+
+#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
+msgid "Fonts"
+msgstr ""
+
+#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
+msgid "Icons"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Styles"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Enumerations"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Property Descriptions"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "(value)"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid ""
+"There is currently no description for this property. Please help us by "
+"[color=$color][url=$url]contributing one[/url][/color]!"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Method Descriptions"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid ""
+"There is currently no description for this method. Please help us by "
+"[color=$color][url=$url]contributing one[/url][/color]!"
+msgstr ""
+
+#: editor/editor_help_search.cpp editor/editor_node.cpp
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search Help"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Case Sensitive"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Show Hierarchy"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Display All"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Classes Only"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Methods Only"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Signals Only"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Constants Only"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Properties Only"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Theme Properties Only"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Member Type"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Class"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Method"
+msgstr ""
+
+#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
+msgid "Signal"
+msgstr ""
+
+#: editor/editor_help_search.cpp modules/visual_script/visual_script_nodes.cpp
+msgid "Constant"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Property"
+msgstr ""
+
+#: editor/editor_help_search.cpp
+msgid "Theme Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
+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_func_nodes.cpp
+#: modules/visual_script/visual_script_nodes.cpp
+#: modules/visual_script/visual_script_property_selector.cpp
+msgid "Set %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+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 ""
+
+#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
+msgid "Copy Selection"
+msgstr ""
+
+#: editor/editor_log.cpp editor/editor_network_profiler.cpp
+#: editor/editor_profiler.cpp editor/editor_resource_picker.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+#: editor/property_editor.cpp editor/scene_tree_dock.cpp
+#: editor/script_editor_debugger.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
+msgid "Clear"
+msgstr ""
+
+#: editor/editor_log.cpp
+msgid "Clear Output"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp editor/editor_node.cpp
+#: editor/editor_profiler.cpp
+msgid "Stop"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
+#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
+msgid "Start"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp
+msgid "%s/s"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp
+msgid "Down"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp
+msgid "Up"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp editor/editor_node.cpp
+msgid "Node"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp
+msgid "Incoming RPC"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp
+msgid "Incoming RSET"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp
+msgid "Outgoing RPC"
+msgstr ""
+
+#: editor/editor_network_profiler.cpp
+msgid "Outgoing RSET"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_manager.cpp
+msgid "New Window"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Spins when the editor window redraws.\n"
+"Update Continuously is enabled, which can increase power usage. Click to "
+"disable it."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Spins when the editor window redraws."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Imported resources can't be saved."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp
+#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp scene/gui/dialogs.cpp
+msgid "OK"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
+msgid "Error saving resource!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource can't be saved because it does not belong to the edited scene. "
+"Make it unique first."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save Resource As..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't open file for writing:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Requested file format unknown:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while saving."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Can't open '%s'. The file could have been moved or deleted."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while parsing '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unexpected end of file '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Missing '%s' or its dependencies."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while loading '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Saving Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Analyzing"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Creating Thumbnail"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a tree root."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This scene can't be saved because there is a cyclic instancing inclusion.\n"
+"Please resolve it and then attempt to save again."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Couldn't save scene. Likely dependencies (instances or inheritance) couldn't "
+"be satisfied."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Could not save one or more scenes!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save All Scenes"
+msgstr ""
+
+#: editor/editor_node.cpp editor/scene_tree_dock.cpp
+msgid "Can't overwrite scene that is still open!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't load MeshLibrary for merging!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error saving MeshLibrary!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't load TileSet for merging!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error saving TileSet!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"An error occurred while trying to save the editor layout.\n"
+"Make sure the editor's user data path is writable."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Default editor layout overridden.\n"
+"To restore the Default layout to its base settings, use the Delete Layout "
+"option and delete the Default layout."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Layout name not found!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Restored the Default layout to its base settings."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource belongs to a scene that was imported, so it's not editable.\n"
+"Please read the documentation relevant to importing scenes to better "
+"understand this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource belongs to a scene that was instanced or inherited.\n"
+"Changes to it won't be kept when saving the current scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource was imported, so it's not editable. Change its settings in the "
+"import panel and then re-import."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This scene was imported, so changes to it won't be kept.\n"
+"Instancing it or inheriting will allow making changes to it.\n"
+"Please read the documentation relevant to importing scenes to better "
+"understand this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This is a remote object, so changes to it won't be kept.\n"
+"Please read the documentation relevant to debugging to better understand "
+"this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "There is no defined scene to run."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save scene before running..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Could not start subprocess!"
+msgstr ""
+
+#: editor/editor_node.cpp editor/filesystem_dock.cpp
+msgid "Open Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Base Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open Scene..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open Script..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save & Close"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes to '%s' before closing?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%s no longer exists! Please specify a new save location."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"The current scene has no root node, but %d modified external resource(s) "
+"were saved anyway."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"A root node is required to save the scene. You can add a root node using the "
+"Scene tree dock."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Scene As..."
+msgstr ""
+
+#: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp
+msgid "This operation can't be done without a scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Mesh Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a root node."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Tile Set"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a selected node."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Current scene not saved. Open anyway?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't undo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to undo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't redo while mouse buttons are pressed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Nothing to redo."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Redo: %s"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't reload a scene that was never saved."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Reload Saved Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"The current scene has unsaved changes.\n"
+"Reload the saved scene anyway? This action cannot be undone."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Run Scene..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quit"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Yes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Exit the editor?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Project Manager?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save & Quit"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes to the following scene(s) before quitting?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes to the following scene(s) before opening Project Manager?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This option is deprecated. Situations where refresh must be forced are now "
+"considered a bug. Please report."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pick a Main Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Close Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Reopen Closed Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to find script field for addon plugin at: '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to load addon script from path: '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Unable to load addon script from path: '%s'. This might be due to a code "
+"error in that script.\n"
+"Disabling the addon at '%s' to prevent further errors."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Scene '%s' was automatically imported, so it can't be modified.\n"
+"To make changes to it, a new inherited scene can be created."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Error loading scene, it must be inside the project path. Use 'Import' to "
+"open the scene, then save it inside the project path."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Scene '%s' has broken dependencies:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Clear Recent Scenes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Layout"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Delete Layout"
+msgstr ""
+
+#: editor/editor_node.cpp editor/import_dock.cpp
+#: editor/script_create_dialog.cpp
+msgid "Default"
+msgstr ""
+
+#: editor/editor_node.cpp editor/editor_resource_picker.cpp
+#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+msgid "Show in FileSystem"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play This Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Close Tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Undo Close Tab"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Close Other Tabs"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Close Tabs to the Right"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Close All Tabs"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Switch Scene Tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more files or folders"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more folders"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more files"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Dock Position"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Distraction Free Mode"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Toggle distraction-free mode."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Add a new scene."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
+msgid "Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Go to previously opened scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Copy Text"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Filter Files..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Operations with scene files."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Inherited Scene..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Scene..."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Open Recent"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Convert To..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "MeshLibrary..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "TileSet..."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Undo"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Redo"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Miscellaneous project or scene-wide tools."
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_manager.cpp
+#: editor/script_create_dialog.cpp
+msgid "Project"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Project Settings..."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
+msgid "Version Control"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
+msgid "Set Up Version Control"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Shut Down Version Control"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Install Android Build Template..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open User Data Folder"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tools"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Orphan Resource Explorer..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Reload Current Project"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quit to Project List"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+#: editor/project_export.cpp
+msgid "Debug"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Deploy with Remote Debug"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Small Deploy with Network Filesystem"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
+"The filesystem will be provided from the project by the editor over the "
+"network.\n"
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Visible Collision Shapes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Visible Navigation"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
+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 ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Synchronize Script Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
+msgstr ""
+
+#: editor/editor_node.cpp editor/script_create_dialog.cpp
+msgid "Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Editor Settings..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Editor Layout"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Take Screenshot"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Screenshots are stored in the Editor Data/Settings Folder."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Toggle Fullscreen"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Editor Data/Settings Folder"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Editor Data Folder"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Editor Settings Folder"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Manage Editor Features..."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Manage Export Templates..."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
+msgid "Help"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Online Documentation"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Questions & Answers"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Report a Bug"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Suggest a Feature"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Send Docs Feedback"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
+msgid "Community"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "About Godot"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Support Godot Development"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play the project."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pause the scene execution for debugging."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pause Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Stop the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play the edited scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play custom scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play Custom Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Changing the video driver requires restarting the editor."
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_settings_editor.cpp
+#: editor/settings_config_dialog.cpp
+msgid "Save & Restart"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update Continuously"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update All Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update Vital Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Hide Update Spinner"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "FileSystem"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Inspector"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Expand Bottom Panel"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Output"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Don't Save"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Android build template is missing, please install relevant templates."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Manage Templates"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Install from file"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Select android sources file"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This will set up your project for custom Android builds by installing the "
+"source template to \"res://android/build\".\n"
+"You can then apply modifications and build your own custom APK on export "
+"(adding modules, changing the AndroidManifest.xml, etc.).\n"
+"Note that in order to make custom builds instead of using pre-built APKs, "
+"the \"Use Custom Build\" option should be enabled in the Android export "
+"preset."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"The Android build template is already installed in this project and it won't "
+"be overwritten.\n"
+"Remove the \"res://android/build\" directory manually before attempting this "
+"operation again."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Import Templates From ZIP File"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Template Package"
+msgstr ""
+
+#: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp
+msgid "Export Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Merge With Existing"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Apply MeshInstance Transforms"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open & Run a Script"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"The following files are newer on disk.\n"
+"What action should be taken?"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/shader_editor_plugin.cpp
+msgid "Reload"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/shader_editor_plugin.cpp
+msgid "Resave"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Inherited"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Load Errors"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Select"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Select Current"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open 2D Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open 3D Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Script Editor"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_manager.cpp
+msgid "Open Asset Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open the next Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open the previous Editor"
+msgstr ""
+
+#: editor/editor_node.h
+msgid "Warning!"
+msgstr ""
+
+#: editor/editor_path.cpp
+msgid "No sub-resources found."
+msgstr ""
+
+#: editor/editor_path.cpp
+msgid "Open a list of sub-resources."
+msgstr ""
+
+#: editor/editor_plugin.cpp
+msgid "Creating Mesh Previews"
+msgstr ""
+
+#: editor/editor_plugin.cpp
+msgid "Thumbnail..."
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Main Script:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Edit Plugin"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Installed Plugins:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
+msgid "Update"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Version"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Author"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Status"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Measure:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame Time (ms)"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Average Time (ms)"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame %"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Physics Frame %"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Inclusive"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Self"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid ""
+"Inclusive: Includes time from other functions called by this function.\n"
+"Use this to spot bottlenecks.\n"
+"\n"
+"Self: Only count the time spent in the function itself, not in other "
+"functions called by that function.\n"
+"Use this to find individual functions to optimize."
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame #:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
+#: editor/editor_properties.cpp
+msgid "Edit Text:"
+msgstr ""
+
+#: editor/editor_properties.cpp editor/script_create_dialog.cpp
+msgid "On"
+msgstr ""
+
+#: editor/editor_properties.cpp
+msgid "Layer"
+msgstr ""
+
+#: editor/editor_properties.cpp
+msgid "Bit %d, value %d"
+msgstr ""
+
+#: editor/editor_properties.cpp
+msgid "[Empty]"
+msgstr ""
+
+#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp
+msgid "Assign..."
+msgstr ""
+
+#: editor/editor_properties.cpp
+msgid "Invalid RID"
+msgstr ""
+
+#: editor/editor_properties.cpp
+msgid ""
+"Can't create a ViewportTexture on resources saved as a file.\n"
+"Resource needs to belong to a scene."
+msgstr ""
+
+#: editor/editor_properties.cpp
+msgid ""
+"Can't create a ViewportTexture on this resource because it's not set as "
+"local to scene.\n"
+"Please switch on the 'local to scene' property on it (and all resources "
+"containing it up to a node)."
+msgstr ""
+
+#: editor/editor_properties.cpp editor/property_editor.cpp
+msgid "Pick a Viewport"
+msgstr ""
+
+#: editor/editor_properties.cpp editor/property_editor.cpp
+msgid "Selected node is not a Viewport!"
+msgstr ""
+
+#: editor/editor_properties_array_dict.cpp
+msgid "Size: "
+msgstr ""
+
+#: editor/editor_properties_array_dict.cpp
+msgid "Page: "
+msgstr ""
+
+#: editor/editor_properties_array_dict.cpp
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove Item"
+msgstr ""
+
+#: editor/editor_properties_array_dict.cpp
+msgid "New Key:"
+msgstr ""
+
+#: editor/editor_properties_array_dict.cpp
+msgid "New Value:"
+msgstr ""
+
+#: editor/editor_properties_array_dict.cpp
+msgid "Add Key/Value Pair"
+msgstr ""
+
+#: editor/editor_resource_picker.cpp
+msgid ""
+"The selected resource (%s) does not match any type expected for this "
+"property (%s)."
+msgstr ""
+
+#: editor/editor_resource_picker.cpp
+msgid "Quick Load"
+msgstr ""
+
+#: editor/editor_resource_picker.cpp editor/property_editor.cpp
+msgid "Make Unique"
+msgstr ""
+
+#: editor/editor_resource_picker.cpp
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp
+#: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Paste"
+msgstr ""
+
+#: editor/editor_resource_picker.cpp editor/property_editor.cpp
+msgid "Convert to %s"
+msgstr ""
+
+#: editor/editor_resource_picker.cpp editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/editor_resource_picker.cpp editor/property_editor.cpp
+msgid "New Script"
+msgstr ""
+
+#: editor/editor_resource_picker.cpp editor/scene_tree_dock.cpp
+msgid "Extend Script"
+msgstr ""
+
+#: editor/editor_run_native.cpp
+msgid ""
+"No runnable export preset found for this platform.\n"
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Write your logic in the _run() method."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "There is an edited scene already."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Couldn't instance script:"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Did you forget the 'tool' keyword?"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Couldn't run script:"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Did you forget the '_run' method?"
+msgstr ""
+
+#: editor/editor_spin_slider.cpp
+msgid "Hold %s to round to integers. Hold Shift for more precise changes."
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Select Node(s) to Import"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp editor/project_manager.cpp
+msgid "Browse"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Scene Path:"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Import From Node:"
+msgstr ""
+
+#. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git").
+#: editor/editor_vcs_interface.cpp
+msgid "%s Error"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Open the folder containing these templates."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Uninstall these templates."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "There are no mirrors available."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Retrieving the mirror list..."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Starting the download..."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error requesting URL:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connecting to the mirror..."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't resolve the requested address."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't connect to the mirror."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "No response from the mirror."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request failed."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Request ended up in a redirect loop."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Request failed:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download complete; extracting templates..."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Cannot remove temporary file:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid ""
+"Templates installation failed.\n"
+"The problematic templates archives can be found at '%s'."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error getting the list of mirrors."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Best available mirror"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid ""
+"No download links found for this version. Direct download is only available "
+"for official releases."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Disconnected"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Resolving"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't Resolve"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Connecting..."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't Connect"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connected"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Requesting..."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Downloading"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connection Error"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "SSL Handshake Error"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't open the export templates file."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Invalid version.txt format inside the export templates file: %s."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "No version.txt found inside the export templates file."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error creating path for extracting templates:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Extracting Export Templates"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Importing:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Remove templates for the version '%s'?"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Uncompressing Android Build Sources"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Export Template Manager"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Current Version:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Export templates are missing. Download them or install from a file."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Export templates are installed and ready to be used."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Open Folder"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Open the folder containing installed templates for the current version."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Uninstall"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Uninstall templates for the current version."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download from:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Open in Web Browser"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download and Install"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid ""
+"Download and install templates for the current version from the best "
+"possible mirror."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Official export templates aren't available for development builds."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Install from File"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Install templates from a local file."
+msgstr ""
+
+#: editor/export_template_manager.cpp editor/find_in_files.cpp
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Cancel the download of the templates."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Other Installed Versions:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Uninstall Template"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Select Template File"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Godot Export Templates"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid ""
+"The templates will continue to download.\n"
+"You may experience a short editor freeze when they finish."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Favorites"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Status: Import of file failed. Please fix file and reimport manually."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid ""
+"Importing has been disabled for this file, so it can't be opened for editing."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Cannot move/rename resources root."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Cannot move a folder into itself."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Error moving:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Error duplicating:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Unable to update dependencies:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/scene_tree_editor.cpp
+msgid "No name provided."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Provided name contains invalid characters."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "A file or folder with this name already exists."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Name contains invalid characters."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid ""
+"This file extension is not recognized by the editor.\n"
+"If you want to rename it anyway, use your operating system's file manager.\n"
+"After renaming to an unknown extension, the file won't be shown in the "
+"editor anymore."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid ""
+"The following files or folders conflict with items in the target location "
+"'%s':\n"
+"\n"
+"%s\n"
+"\n"
+"Do you wish to overwrite them?"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Renaming file:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Renaming folder:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating file:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating folder:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "New Inherited Scene"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Set As Main Scene"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Open Scenes"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Instance"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Add to Favorites"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Remove from Favorites"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Edit Dependencies..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "View Owners..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Move To..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "New Scene..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
+msgid "New Script..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "New Resource..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/inspector_dock.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#: editor/script_editor_debugger.cpp
+msgid "Expand All"
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/inspector_dock.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#: editor/script_editor_debugger.cpp
+msgid "Collapse All"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Sort files"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Sort by Name (Ascending)"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Sort by Name (Descending)"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Sort by Type (Ascending)"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Sort by Type (Descending)"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Sort by Last Modified"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Sort by First Modified"
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
+msgid "Duplicate..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
+msgid "Rename..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Focus the search box"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Previous Folder/File"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Next Folder/File"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Re-Scan Filesystem"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Toggle Split Mode"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Search files"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid ""
+"Scanning Files,\n"
+"Please Wait..."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Move"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+#: editor/project_manager.cpp editor/rename_dialog.cpp
+#: editor/scene_tree_dock.cpp
+msgid "Rename"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Overwrite"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Create Scene"
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Create Script"
+msgstr ""
+
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Find in Files"
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "Find:"
+msgstr ""
+
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "Folder:"
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "Filters:"
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid ""
+"Include the files with the following extensions. Add or remove them in "
+"ProjectSettings."
+msgstr ""
+
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+msgid "Find..."
+msgstr ""
+
+#: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp
+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 ""
+
+#: editor/find_in_files.cpp
+msgid "Replace: "
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "Replace All (NO UNDO)"
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "Searching..."
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "%d match in %d file."
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "%d matches in %d file."
+msgstr ""
+
+#: editor/find_in_files.cpp
+msgid "%d matches in %d files."
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Add to Group"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Remove from Group"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Group name already exists."
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Invalid group name."
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Rename Group"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Delete Group"
+msgstr ""
+
+#: editor/groups_editor.cpp editor/node_dock.cpp
+msgid "Groups"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Nodes Not in Group"
+msgstr ""
+
+#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
+#: editor/scene_tree_editor.cpp
+msgid "Filter nodes"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Nodes in Group"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Empty groups will be automatically removed."
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Group Editor"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Manage Groups"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Single Scene"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Materials+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Materials+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Multiple Scenes"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Multiple Scenes+Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import Scene"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Importing Scene..."
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Running Custom Script..."
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Couldn't load post-import script:"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Invalid/broken script for post-import (check console):"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Error running post-import script:"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Did you return a Node-derived object in the `post_import()` method?"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Saving..."
+msgstr ""
+
+#: editor/import_defaults_editor.cpp
+msgid "Select Importer"
+msgstr ""
+
+#: editor/import_defaults_editor.cpp
+msgid "Importer:"
+msgstr ""
+
+#: editor/import_defaults_editor.cpp
+msgid "Reset to Defaults"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Keep File (No Import)"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "%d Files"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Set as Default for '%s'"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Clear Default for '%s'"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Reimport"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid ""
+"You have pending changes that haven't been applied yet. Click Reimport to "
+"apply changes made to the import options.\n"
+"Selecting another resource in the FileSystem dock without clicking Reimport "
+"first will discard changes made in the Import dock."
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Import As:"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Preset"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Save Scenes, Re-Import, and Restart"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Changing the type of an imported file requires editor restart."
+msgstr ""
+
+#: editor/import_dock.cpp
+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 ""
+
+#: editor/inspector_dock.cpp
+msgid "Copy Properties"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Paste Properties"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Make Sub-Resources Unique"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Create a new resource in memory and edit it."
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Load an existing resource from disk and edit it."
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Save the currently edited resource."
+msgstr ""
+
+#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Save As..."
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Extra resource options."
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Edit Resource from Clipboard"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Copy Resource"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Make Resource Built-In"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Go to the previous edited object in history."
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Go to the next edited object in history."
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "History of recently edited objects."
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Open documentation for this object."
+msgstr ""
+
+#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
+msgid "Open Documentation"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Filter properties"
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Manage object properties."
+msgstr ""
+
+#: editor/inspector_dock.cpp
+msgid "Changes may be lost!"
+msgstr ""
+
+#: editor/multi_node_edit.cpp
+msgid "MultiNode Set"
+msgstr ""
+
+#: editor/node_dock.cpp
+msgid "Select a single node to edit its signals and groups."
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Edit a Plugin"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Create a Plugin"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Plugin Name:"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Subfolder:"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Author:"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Version:"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp
+msgid "Language:"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Script Name:"
+msgstr ""
+
+#: editor/plugin_config_dialog.cpp
+msgid "Activate now?"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create Polygon"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Create points."
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid ""
+"Edit points.\n"
+"LMB: Move Point\n"
+"RMB: Erase Point"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Erase points."
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Edit Polygon"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Insert Point"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Edit Polygon (Remove Point)"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Remove Polygon And Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Animation"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Load..."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Move Node Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Change BlendSpace1D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "This type of node can't be used. Only root nodes are allowed."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Add Node Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Add Animation Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Remove BlendSpace1D Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+msgid "Move BlendSpace1D Node Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid ""
+"AnimationTree is inactive.\n"
+"Activate to enable playback, check node warnings if activation fails."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Set the blending position within the space"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Select and move points, create points with RMB."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
+msgid "Enable snap and show grid."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Open Editor"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_1d_editor.cpp
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Open Animation Node"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Triangle already exists."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Add Triangle"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Limits"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Change BlendSpace2D Labels"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Remove BlendSpace2D Point"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Remove BlendSpace2D Triangle"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "BlendSpace2D does not belong to an AnimationTree node."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "No triangles exist, so no blending can take place."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Toggle Auto Triangles"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Create triangles by connecting points."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Erase points and triangles."
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+msgid "Generate blend triangles automatically (instead of manually)"
+msgstr ""
+
+#: editor/plugins/animation_blend_space_2d_editor.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend:"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Parameter Changed:"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Edit Filters"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Output node can't be added to the blend tree."
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Add Node to BlendTree"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Node Moved"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Unable to connect, port may be in use or connection may be invalid."
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Nodes Connected"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Nodes Disconnected"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Set Animation"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Delete Node"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/scene_tree_dock.cpp
+msgid "Delete Node(s)"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Toggle Filter On/Off"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Change Filter"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "No animation player set, so unable to retrieve track names."
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Player path set is invalid, so unable to retrieve track names."
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/root_motion_editor_plugin.cpp
+msgid ""
+"Animation player has no valid root node path, so unable to retrieve track "
+"names."
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Anim Clips"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Audio Clips"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Functions"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Node Renamed"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node..."
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+#: editor/plugins/root_motion_editor_plugin.cpp
+msgid "Edit Filtered Tracks:"
+msgstr ""
+
+#: editor/plugins/animation_blend_tree_editor_plugin.cpp
+msgid "Enable Filtering"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Toggle Autoplay"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Anim"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Delete Animation?"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Remove Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Invalid animation name!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation name already exists!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Rename Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Duplicate Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Next Changed"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Blend Time"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "No animation to copy!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "No animation resource on clipboard!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Pasted Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Paste Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "No animation to edit!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from current pos. (A)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from end. (Shift+A)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Stop animation playback. (S)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from start. (Shift+D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from current pos. (D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation position (in seconds)."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Scale animation playback globally for the node."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Tools"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "New"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Edit Transitions..."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Open in Inspector"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Display list of animations in player."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Autoplay on Load"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Enable Onion Skinning"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Onion Skinning Options"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Directions"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Past"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Future"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Depth"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "1 step"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "2 steps"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "3 steps"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Differences Only"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Force White Modulate"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Include Gizmos (3D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Pin AnimationPlayer"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create New Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
+msgid "Error!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Times:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Next (Auto Queue):"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Cross-Animation Blend Times"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Move Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Transition exists!"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Add Transition"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "End"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Immediate"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Sync"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "At End"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Travel"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Start and end nodes are needed for a sub-transition."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "No playback resource set at path: %s."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Node Removed"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Transition Removed"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Set Start Node (Autoplay)"
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid ""
+"Select and move nodes.\n"
+"RMB to add new nodes.\n"
+"Shift+LMB to create connections."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Create new nodes."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Connect nodes."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Remove selected node or transition."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Toggle autoplay this animation on start, restart or seek to zero."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Set the end animation. This is useful for sub-transitions."
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Transition: "
+msgstr ""
+
+#: editor/plugins/animation_state_machine_editor.cpp
+msgid "Play Mode:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "AnimationTree"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "New name:"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Scale:"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Fade In (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Fade Out (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Mix"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Auto Restart:"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Restart (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Random Restart (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Start!"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Amount:"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend 0:"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend 1:"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "X-Fade Time (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Current:"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Input"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Clear Auto-Advance"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Set Auto-Advance"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Delete Input"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Animation tree is valid."
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Animation tree is invalid."
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Animation Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "OneShot Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Mix Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend2 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend3 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Blend4 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "TimeScale Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "TimeSeek Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Transition Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Import Animations..."
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Edit Node Filters"
+msgstr ""
+
+#: editor/plugins/animation_tree_player_editor_plugin.cpp
+msgid "Filters..."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Contents:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "View Files"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Download"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Connection error, please try again."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't connect."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't connect to host:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "No response from host:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "No response."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't resolve hostname:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't resolve."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request failed, return code:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Cannot save response to:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Write error."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request failed, too many redirects"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Redirect loop."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request failed, timeout"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Timeout."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Failed:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Bad download hash, assuming file has been tampered with."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Expected:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Got:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Failed SHA-256 hash check"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Asset Download Error:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Downloading (%s / %s)..."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Downloading..."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Resolving..."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Error making request"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Idle"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Install..."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Retry"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Download Error"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Download for this asset is already in progress!"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Recently Updated"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Least Recently Updated"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Name (A-Z)"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Name (Z-A)"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "License (A-Z)"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "License (Z-A)"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "First"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Previous"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Next"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Last"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "All"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Search templates, projects, and demos"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Search assets (excluding templates, projects, and demos)"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Import..."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Plugins..."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
+msgid "Sort:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Category:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Site:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Support"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Official"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Testing"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Loading..."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Assets ZIP File"
+msgstr ""
+
+#: editor/plugins/audio_stream_editor_plugin.cpp
+msgid "Audio Preview Play/Pause"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene and try again."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Use "
+"In Baked Light' and 'Generate Lightmap' flags are on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed determining lightmap size. Maximum lightmap size too small?"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Some mesh is invalid. Make sure the UV2 channel values are contained within "
+"the [0.0,1.0] square region."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Godot editor was built without ray tracing support, lightmaps can't be baked."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Select lightmap bake file:"
+msgstr ""
+
+#: editor/plugins/camera_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Preview"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Configure Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Grid Offset:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Grid Step:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Primary Line Every:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "steps"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Offset:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Step:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Step:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Vertical Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create Vertical Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Remove Vertical Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Horizontal Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create Horizontal Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Remove Horizontal Guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create Horizontal and Vertical Guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate CanvasItem \"%s\" to %d degrees"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale Node2D \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Resize Control \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale CanvasItem \"%s\" to (%s, %s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move %d CanvasItems"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move CanvasItem \"%s\" to (%d, %d)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Locked"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Grouped"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Children of containers have their anchors and margins values overridden by "
+"their parent."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Presets for the anchors and margins values of a Control node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"When active, moving Control nodes changes their anchors instead of their "
+"margins."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Top Left"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Top Right"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Bottom Right"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Bottom Left"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Left"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Top"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Right"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Bottom"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Left Wide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Top Wide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Right Wide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Bottom Wide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "VCenter Wide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "HCenter Wide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Full Rect"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Keep Ratio"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Anchors only"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Anchors and Margins"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Anchors"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Project Camera Override\n"
+"Overrides the running project's camera with the editor viewport camera."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Project Camera Override\n"
+"No project instance running. Run the project from the editor to use this "
+"feature."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Paste Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create Custom Bone(s) from Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make IK Chain"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear IK Chain"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Warning: Children of a container get their position and size determined only "
+"by their parent."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+#: editor/plugins/texture_region_editor_plugin.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
+msgid "Zoom Reset"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Select Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Drag: Rotate selected node around pivot."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+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 ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "RMB: Add node at position clicked."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Move Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+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"
+"(same as Alt+RMB in select mode)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Click to change object's rotation pivot."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Pan Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Ruler Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Toggle smart snapping."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Smart Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Toggle grid snapping."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Grid Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snapping Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Rotation Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Scale Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap Relative"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Pixel Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Smart Snapping"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Configure Snap..."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Parent"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Node Anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Node Sides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Node Center"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Other Nodes"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to Guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock the selected object in place (can't be moved)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "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 ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make Custom Bone(s) from Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Custom Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Always Show Grid"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Helpers"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Rulers"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Origin"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Viewport"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Group And Lock Icons"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Selection"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Frame Selection"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Preview Canvas Scale"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Translation mask for inserting keys."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation mask for inserting keys."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Scale mask for inserting keys."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert keys (based on mask)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Auto insert keys when objects are translated, rotated or scaled (based on "
+"mask).\n"
+"Keys are only added to existing tracks, no new tracks will be created.\n"
+"Keys must be inserted manually for the first time."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Auto Insert Key"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key (Existing Tracks)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Copy Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add Node Here"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Instance Scene Here"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Multiply grid step by 2"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Divide grid step by 2"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Pan View"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 3.125%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 6.25%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 12.5%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 25%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 50%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 100%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 200%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 400%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 800%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Zoom to 1600%"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Add %s"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Cannot instantiate multiple nodes without root."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Default Type"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+msgid "Create Polygon3D"
+msgstr ""
+
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+msgid "Edit Poly"
+msgstr ""
+
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+msgid "Edit Poly (Remove Point)"
+msgstr ""
+
+#: editor/plugins/collision_shape_2d_editor_plugin.cpp
+msgid "Set Handle"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Load Emission Mask"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/cpu_particles_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Restart"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Particles"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generated Point Count:"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Emission Mask"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Solid Pixels"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Border Pixels"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Directed Border Pixels"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Capture from Pixel"
+msgstr ""
+
+#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Emission Colors"
+msgstr ""
+
+#: editor/plugins/cpu_particles_editor_plugin.cpp
+msgid "CPUParticles"
+msgstr ""
+
+#: editor/plugins/cpu_particles_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emission Points From Mesh"
+msgstr ""
+
+#: editor/plugins/cpu_particles_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emission Points From Node"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Flat 0"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Flat 1"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
+msgid "Ease In"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
+msgid "Ease Out"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Smoothstep"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Modify Curve Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Modify Curve Tangent"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Load Curve Preset"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Add Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Remove Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Left Linear"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Right Linear"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Load Preset"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Remove Curve Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Toggle Curve Linear Tangent"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Hold Shift to edit tangents individually"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Right click to add point"
+msgstr ""
+
+#: editor/plugins/gi_probe_editor_plugin.cpp
+msgid "Bake GI Probe"
+msgstr ""
+
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Gradient Edited"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Item %d"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Items"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Item List Editor"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create Occluder Polygon"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh is empty!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Couldn't create a Trimesh collision shape."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Trimesh Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "This doesn't work on scene root!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Static Shape"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Can't create a single convex collision shape for the scene root."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Couldn't create a single convex collision shape."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Simplified Convex Shape"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Single Convex Shape"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Can't create multiple convex collision shapes for the scene root."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Couldn't create any collision shapes."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Multiple Convex Shapes"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Navigation Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has no UV in layer %d."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "MeshInstance lacks a Mesh!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Could not create outline!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Static Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid ""
+"Creates a StaticBody and assigns a polygon-based collision shape to it "
+"automatically.\n"
+"This is the most accurate (but slowest) option for collision detection."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Collision Sibling"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid ""
+"Creates a polygon-based collision shape.\n"
+"This is the most accurate (but slowest) option for collision detection."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Single Convex Collision Sibling"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid ""
+"Creates a single convex collision shape.\n"
+"This is the fastest (but least accurate) option for collision detection."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Simplified Convex Collision Sibling"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid ""
+"Creates a simplified convex collision shape.\n"
+"This is similar to single collision shape, but can result in a simpler "
+"geometry in some cases, at the cost of accuracy."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Multiple Convex Collision Siblings"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid ""
+"Creates a polygon-based collision shape.\n"
+"This is a performance middle-ground between a single convex collision and a "
+"polygon-based collision."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh..."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid ""
+"Creates a static outline mesh. The outline mesh will have its normals "
+"flipped automatically.\n"
+"This can be used instead of the SpatialMaterial Grow property when using "
+"that property isn't possible."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Outline Size:"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Channel Debug"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Remove item %d?"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid ""
+"Update from existing scene?:\n"
+"%s"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Mesh Library"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Add Item"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Remove Selected Item"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Ignore Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Import from Scene (Apply Transforms)"
+msgstr ""
+
+#: editor/plugins/mesh_library_editor_plugin.cpp
+msgid "Update from Scene"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and no MultiMesh set in node)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and MultiMesh contains no Mesh)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (invalid path)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (not a MeshInstance)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (contains no Mesh resource)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No surface source specified."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (invalid path)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no geometry)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no faces)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Source Mesh:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Target Surface:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate Surface"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate MultiMesh"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Target Surface:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Source Mesh:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "X-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Y-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Z-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh Up Axis:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Rotation:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Tilt:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Scale:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate"
+msgstr ""
+
+#: editor/plugins/navigation_polygon_editor_plugin.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create Navigation Polygon"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Convert to CPUParticles"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generating Visibility Rect"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generate Visibility Rect"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Can only set point into a ParticlesMaterial process material"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Convert to CPUParticles2D"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generation Time (sec):"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "The geometry's faces don't contain any area."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "The geometry doesn't contain any faces."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "\"%s\" doesn't inherit from Spatial."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "\"%s\" doesn't contain geometry."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "\"%s\" doesn't contain face geometry."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Points:"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Surface Points"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Surface Points+Normal (Directed)"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Volume"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Source: "
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "A processor material of type 'ParticlesMaterial' is required."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generating AABB"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generate Visibility AABB"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove Point from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove Out-Control from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove In-Control from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Add Point to Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Split Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Point in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move In-Control in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Out-Control in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Select Points"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Shift+Drag: Select Control Points"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Click: Add Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Left Click: Split Segment (in curve)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Right Click: Delete Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Select Control Points (Shift+Drag)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Add Point (in empty space)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Delete Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Close Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+#: editor/plugins/theme_editor_preview.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp
+msgid "Options"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Mirror Handle Angles"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Mirror Handle Lengths"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Curve Point #"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Point Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve In Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Out Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Split Path"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove Path Point"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove Out-Control Point"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove In-Control Point"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Split Segment (in curve)"
+msgstr ""
+
+#: editor/plugins/physical_bone_plugin.cpp
+msgid "Move Joint"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid ""
+"The skeleton property of the Polygon2D does not point to a Skeleton2D node"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Sync Bones"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid ""
+"No texture in this polygon.\n"
+"Set a texture to be able to edit UV."
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create UV Map"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid ""
+"Polygon 2D has internal vertices, so it can no longer be edited in the "
+"viewport."
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create Polygon & UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create Internal Vertex"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Remove Internal Vertex"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Invalid Polygon (need 3 different vertices)"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Add Custom Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Remove Custom Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Transform UV Map"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Transform Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Paint Bone Weights"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Open Polygon 2D UV editor."
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon 2D UV Editor"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Points"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygons"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Bones"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Points"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Command: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift: Move All"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Command: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Ctrl: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Rotate Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Scale Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create a custom polygon. Enables custom polygon rendering."
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid ""
+"Remove a custom polygon. If none remain, custom polygon rendering is "
+"disabled."
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Paint weights with specified intensity."
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Unpaint weights with specified intensity."
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Radius:"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Copy Polygon to UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Copy UV to Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Clear UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Settings"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Snap"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Enable Snap"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Show Grid"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Configure Grid:"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Offset X:"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Offset Y:"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Step X:"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Step Y:"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Sync Bones to Polygon"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "ERROR: Couldn't load resource!"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Add Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Rename Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Delete Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Resource clipboard is empty!"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Paste Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/scene_tree_editor.cpp
+msgid "Instance:"
+msgstr ""
+
+#: 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 ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
+msgid "Open in Editor"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Load Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "ResourcePreloader"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Flip Portals"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Room Generate Points"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Generate Points"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Flip Portal"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Occluder Set Transform"
+msgstr ""
+
+#: editor/plugins/room_manager_editor_plugin.cpp
+msgid "Center Node"
+msgstr ""
+
+#: editor/plugins/root_motion_editor_plugin.cpp
+msgid "AnimationTree has no path set to an AnimationPlayer"
+msgstr ""
+
+#: editor/plugins/root_motion_editor_plugin.cpp
+msgid "Path to AnimationPlayer is invalid"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Clear Recent Files"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close and save changes?"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error writing TextFile:"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Could not load file at:"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error saving file!"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error while saving theme."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error Saving"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error importing theme."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error Importing"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "New Text File..."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Open File"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save File As..."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Can't obtain the script for running."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Script failed reloading, check console for errors."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Script is not in tool mode, will not be able to run."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid ""
+"To run this script, it must inherit EditorScript and be set to tool mode."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Import Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error while saving theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error saving"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As..."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "%s Class Reference"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+msgid "Find Next"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+msgid "Find Previous"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Filter scripts"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Toggle alphabetical sorting of the method list."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Filter methods"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Sort"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Move Up"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Move Down"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Next Script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Previous Script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "File"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Open..."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Reopen Closed Script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save All"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Soft Reload Script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "History Previous"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "History Next"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Import Theme..."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Reload Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close All"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close Docs"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
+msgid "Run"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Search"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Step Into"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Step Over"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Break"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
+#: editor/script_editor_debugger.cpp
+msgid "Continue"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Keep Debugger Open"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Debug with External Editor"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/shader_editor_plugin.cpp
+msgid "Online Docs"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Open Godot online documentation."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search the reference documentation."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Go to previous edited document."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Go to next edited document."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Discard"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid ""
+"The following files are newer on disk.\n"
+"What action should be taken?:"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Debugger"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search Results"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Clear Recent Scripts"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Connections to method:"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp
+msgid "Source"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Target"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid ""
+"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "[Ignore]"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Line"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Go to Function"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Only resources from filesystem can be dropped."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Can't drop nodes because script '%s' is not used in this scene."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Lookup Symbol"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Pick Color"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
+msgid "Convert Case"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
+msgid "Uppercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
+msgid "Lowercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
+msgid "Capitalize"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
+msgid "Syntax Highlighter"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Bookmarks"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Breakpoints"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
+msgid "Go To"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Cut"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp editor/plugins/theme_editor_plugin.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Select All"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Delete Line"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Indent Left"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Indent Right"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Toggle Comment"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Fold/Unfold Line"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Fold All Lines"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Unfold All Lines"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Complete Symbol"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Evaluate Selection"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Trim Trailing Whitespace"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Indent to Spaces"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Indent to Tabs"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Auto Indent"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+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 ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Toggle Bookmark"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Go to Next Bookmark"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Go to Previous Bookmark"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Remove All Bookmarks"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Go to Function..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Go to Line..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Toggle Breakpoint"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Remove All Breakpoints"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Go to Next Breakpoint"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Go to Previous Breakpoint"
+msgstr ""
+
+#: editor/plugins/shader_editor_plugin.cpp
+msgid ""
+"This shader has been modified on on disk.\n"
+"What action should be taken?"
+msgstr ""
+
+#: editor/plugins/shader_editor_plugin.cpp
+msgid "Shader"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "This skeleton has no bones, create some children Bone2D nodes."
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Set Rest Pose to Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Create Rest Pose from Bones"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Skeleton2D"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Reset to Rest Pose"
+msgstr ""
+
+#: editor/plugins/skeleton_2d_editor_plugin.cpp
+msgid "Overwrite Rest Pose"
+msgstr ""
+
+#: editor/plugins/skeleton_editor_plugin.cpp
+msgid "Create physical bones"
+msgstr ""
+
+#: editor/plugins/skeleton_editor_plugin.cpp
+msgid "Skeleton"
+msgstr ""
+
+#: editor/plugins/skeleton_editor_plugin.cpp
+msgid "Create physical skeleton"
+msgstr ""
+
+#: editor/plugins/skeleton_ik_editor_plugin.cpp
+msgid "Play IK"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear Perspective"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [auto]"
+msgstr ""
+
+#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid " [portals active]"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Aborted."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "X-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Y-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Z-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Plane Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#: editor/plugins/texture_region_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp scene/resources/visual_shader.cpp
+msgid "None"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate"
+msgstr ""
+
+#. TRANSLATORS: This refers to the movement that changes the position of an object.
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scaling: "
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translating: "
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotating %s degrees."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Keying is disabled (no key inserted)."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Animation Key Inserted."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Pitch:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Yaw:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Size:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Objects Drawn:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Material Changes:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Shader Changes:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Surface Changes:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Draw Calls:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Vertices:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "FPS: %d (%s ms)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Align Transform with View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Align Rotation with View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Auto Orthogonal Enabled"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock View Rotation"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Normal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Wireframe"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Overdraw"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Unshaded"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Environment"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Gizmos"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Information"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View FPS"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Half Resolution"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Audio Listener"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Enable Doppler"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Cinematic Preview"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Left"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Right"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Forward"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Backwards"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Up"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Down"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Speed Modifier"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Slow Modifier"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Toggle Camera Preview"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Rotation Locked"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"To zoom further, change the camera's clipping planes (View -> Settings...)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Note: The FPS value displayed is the editor's framerate.\n"
+"It cannot be used as a reliable indication of in-game performance."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Convert Rooms"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "XForm Dialog"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Click to toggle between visibility states.\n"
+"\n"
+"Open eye: Gizmo is visible.\n"
+"Closed eye: Gizmo is hidden.\n"
+"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Nodes to Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Couldn't find a solid floor to snap the selection to."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Use Local Space"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Use Snap"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Converts rooms for portal culling."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Orbit View Down"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Orbit View Left"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Orbit View Right"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Orbit View Up"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Orbit View 180"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Switch Perspective/Orthogonal View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Insert Animation Key"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Focus Origin"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Focus Selection"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "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 ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Object to Floor"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Dialog..."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "1 Viewport"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports (Alt)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports (Alt)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "4 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Gizmos"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Origin"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Grid"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Portal Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Occlusion Culling"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Settings..."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Settings"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate Snap:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Snap (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Snap (%):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Viewport Settings"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective FOV (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Near:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Far:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Change"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale (ratio):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Type"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Pre"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Post"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unnamed Gizmo"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create Mesh2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Mesh2D Preview"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create Polygon2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Polygon2D Preview"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create CollisionPolygon2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "CollisionPolygon2D Preview"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create LightOccluder2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "LightOccluder2D Preview"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Sprite is empty!"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Can't convert a sprite using animation frames to mesh."
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Invalid geometry, can't replace by mesh."
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Convert to Mesh2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Invalid geometry, can't create polygon."
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Convert to Polygon2D"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Invalid geometry, can't create collision polygon."
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create CollisionPolygon2D Sibling"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Invalid geometry, can't create light occluder."
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Create LightOccluder2D Sibling"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Sprite"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Simplification: "
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Shrink (Pixels): "
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Grow (Pixels): "
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Update Preview"
+msgstr ""
+
+#: editor/plugins/sprite_editor_plugin.cpp
+msgid "Settings:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "No Frames Selected"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add %d Frame(s)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Frame"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Unable to load images"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "ERROR: Couldn't load frame resource!"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Resource clipboard is empty or not a texture!"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Paste Frame"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Empty"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation FPS"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "(empty)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Move Frame"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animations:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "New Animation"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Speed:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Loop"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animation Frames:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add a Texture from File"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Frames from a Sprite Sheet"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (Before)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (After)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Move (Before)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Move (After)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Select Frames"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Horizontal:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Vertical:"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Select/Clear All Frames"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Create Frames from Sprite Sheet"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "SpriteFrames"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Set Region Rect"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Set Margin"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Snap Mode:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Pixel Snap"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "TextureRegion"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Styleboxes"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "{num} color(s)"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "No colors found."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "{num} constant(s)"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "No constants found."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "{num} font(s)"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "No fonts found."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "{num} icon(s)"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "No icons found."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "{num} stylebox(es)"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "No styleboxes found."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "{num} currently selected"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Nothing was selected for the import."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Importing Theme Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Importing items {n}/{n}"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Updating the editor"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Finalizing"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "With Data"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select by data type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible color items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible color items and their data."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Deselect all visible color items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible constant items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible constant items and their data."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Deselect all visible constant items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible font items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible font items and their data."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Deselect all visible font items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible icon items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible icon items and their data."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Deselect all visible icon items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible stylebox items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all visible stylebox items and their data."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Deselect all visible stylebox items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Caution: Adding icon data may considerably increase the size of your Theme "
+"resource."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Collapse types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Expand types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all Theme items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select With Data"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select all Theme items with item data."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Deselect All"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Deselect all Theme items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Import Selected"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Import Items tab has some items selected. Selection will be lost upon "
+"closing this window.\n"
+"Close anyway?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Select a theme type from the list to edit its items.\n"
+"You can add a custom type or import a type with its items from another theme."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All Color Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Rename Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All Constant Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All Font Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All Icon Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All StyleBox Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"This theme type is empty.\n"
+"Add more items to it manually or by importing from another theme."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Color Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Constant Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Font Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Icon Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Stylebox Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Rename Color Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Rename Constant Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Rename Font Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Rename Icon Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Rename Stylebox Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Invalid file, not a Theme resource."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Invalid file, same as the edited Theme resource."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Manage Theme Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Edit Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Types:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add StyleBox Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove Items:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove Class Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove Custom Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Theme Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Old Name:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Import Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Default Theme"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Editor Theme"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select Another Theme Resource:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+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
+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 "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Confirm Item Rename"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+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 ""
+"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 "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Show Default"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Show default type items alongside items that have been overridden."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Override All"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Override all default type items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Manage Items..."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add, remove, organize and import Theme items."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Preview"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Default Preview"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select UI Scene:"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid ""
+"Toggle the control picker, allowing to visually select control types for "
+"edit."
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Toggle Button"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Disabled Button"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Disabled Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Check Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Checked Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Radio Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Checked Radio Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Named Separator"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Submenu"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Subitem 1"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Subitem 2"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Has"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Many"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Disabled LineEdit"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Tab 1"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Tab 2"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Tab 3"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Editable Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Subtree"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Has,Many,Options"
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Invalid path, the PackedScene resource was probably moved or removed."
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Invalid PackedScene resource, must have a Control node at its root."
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Invalid file, not a PackedScene resource."
+msgstr ""
+
+#: editor/plugins/theme_editor_preview.cpp
+msgid "Reload the scene to reflect its most actual state."
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase Selection"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Fix Invalid Tiles"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cut Selection"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Paint TileMap"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Line Draw"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Bucket Fill"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase TileMap"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Find Tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Transpose"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Disable Autotile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Enable Priority"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Filter tiles"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Give a TileSet resource to this TileMap to use its tiles."
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Paint Tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Command+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid ""
+"Shift+LMB: Line Draw\n"
+"Shift+Ctrl+LMB: Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Pick Tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate Left"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate Right"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Flip Horizontally"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Flip Vertically"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Clear Transform"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Add Texture(s) to TileSet."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove selected Texture from TileSet."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from Scene"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from Scene"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "New Single Tile"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "New Autotile"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "New Atlas"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Next Coordinate"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Select the next shape, subtile, or Tile."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Previous Coordinate"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Select the previous shape, subtile, or Tile."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Region"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Collision"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Occlusion"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Navigation"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Bitmask"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Priority"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Icon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Z Index"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Region Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Collision Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Occlusion Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Navigation Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Bitmask Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Priority Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Icon Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Z Index Mode"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Copy bitmask."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Paste bitmask."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Erase bitmask."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create a new rectangle."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "New Rectangle"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create a new polygon."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "New Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Delete Selected Shape"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Keep polygon inside region Rect."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Enable snap and show grid (configurable via the Inspector)."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Display Tile Names (Hold Alt Key)"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid ""
+"Add or select a texture on the left panel to edit the tiles bound to it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove selected texture? This will remove all tiles which use it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "You haven't selected a texture to remove."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from scene? This will overwrite all current tiles."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from scene?"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Texture"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "%s file(s) were not added because was already on the list."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid ""
+"Drag handles to edit Rect.\n"
+"Click on another Tile to edit it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Delete selected Rect."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid ""
+"Select current edited sub-tile.\n"
+"Click on another Tile to edit it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Delete polygon."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid ""
+"LMB: Set bit on.\n"
+"RMB: Set bit off.\n"
+"Shift+LMB: Set wildcard bit.\n"
+"Click on another Tile to edit it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid ""
+"Select sub-tile to use as icon, this will be also used on invalid autotile "
+"bindings.\n"
+"Click on another Tile to edit it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid ""
+"Select sub-tile to change its priority.\n"
+"Click on another Tile to edit it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid ""
+"Select sub-tile to change its z index.\n"
+"Click on another Tile to edit it."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Set Tile Region"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create Tile"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Set Tile Icon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Tile Bitmask"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Collision Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Occlusion Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Navigation Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Paste Tile Bitmask"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Clear Tile Bitmask"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Make Polygon Concave"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Make Polygon Convex"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Tile"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Collision Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Occlusion Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Navigation Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Tile Priority"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Edit Tile Z Index"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Make Convex"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Make Concave"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create Collision Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create Occlusion Polygon"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "This property can't be changed."
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "TileSet"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "No VCS plugins are available."
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Error"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid ""
+"Remote settings are empty. VCS features that use the network may not work."
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "No commit message was provided."
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Commit"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Staged Changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Unstaged Changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Commit:"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Date:"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Subtitle:"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Do you want to remove the %s branch?"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Do you want to remove the %s remote?"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Apply"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Version Control System"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Initialize"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Remote Login"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Username"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Password"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "SSH Public Key Path"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Select SSH public key path"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "SSH Private Key Path"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Select SSH private key path"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "SSH Passphrase"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Detect new changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Discard all changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Stage all changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Unstage all changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Commit Message"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Commit Changes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Commit List"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Commit list size"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Branches"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Create New Branch"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Remove Branch"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Branch Name"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Remotes"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Create New Remote"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Remove Remote"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Remote Name"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Remote URL"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Fetch"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Pull"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Push"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Force Push"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Modified"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Renamed"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Deleted"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Typechange"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Unmerged"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "View:"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Split"
+msgstr ""
+
+#: editor/plugins/version_control_editor_plugin.cpp
+msgid "Unified"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "(GLES3 only)"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Output"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Scalar"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Vector"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Boolean"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Sampler"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add input port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add output port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Change input port type"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Change output port type"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Change input port name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Change output port name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Remove input port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Remove output port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set expression"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Resize VisualShader node"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Uniform Name"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Set Input Default Port"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Add Node to Visual Shader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Node(s) Moved"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Duplicate Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Paste Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Delete Nodes"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Input Type Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "UniformRef Name Changed"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Vertex"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Fragment"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Light"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Show resulted shader code."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Create Shader Node"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Color function."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Color operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Grayscale function."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Converts HSV vector to RGB equivalent."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Converts RGB vector to HSV equivalent."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Sepia function."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Burn operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Darken operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Difference operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Dodge operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "HardLight operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Lighten operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Overlay operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Screen operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "SoftLight operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Color constant."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Color uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the boolean result of the %s comparison between two parameters."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Equal (==)"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Greater Than (>)"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Greater Than or Equal (>=)"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns an associated vector if the provided scalars are equal, greater or "
+"less."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns the boolean result of the comparison between INF and a scalar "
+"parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns the boolean result of the comparison between NaN and a scalar "
+"parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Less Than (<)"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Less Than or Equal (<=)"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Not Equal (!=)"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns an associated vector if the provided boolean value is true or false."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns an associated scalar if the provided boolean value is true or false."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the boolean result of the comparison between two parameters."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns the boolean result of the comparison between INF (or NaN) and a "
+"scalar parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Boolean constant."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Boolean uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "'%s' input parameter for all shader modes."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Input parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "'%s' input parameter for vertex and fragment shader modes."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "'%s' input parameter for fragment and light shader modes."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "'%s' input parameter for fragment shader mode."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "'%s' input parameter for light shader mode."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "'%s' input parameter for vertex shader mode."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "'%s' input parameter for vertex and fragment shader mode."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Scalar function."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Scalar operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "E constant (2.718282). Represents the base of the natural logarithm."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Epsilon constant (0.00001). Smallest possible scalar number."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Phi constant (1.618034). Golden ratio."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Pi/4 constant (0.785398) or 45 degrees."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Pi/2 constant (1.570796) or 90 degrees."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Pi constant (3.141593) or 180 degrees."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Tau constant (6.283185) or 360 degrees."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Sqrt2 constant (1.414214). Square root of 2."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the absolute value of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the arc-cosine of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the inverse hyperbolic cosine of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the arc-sine of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the inverse hyperbolic sine of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the arc-tangent of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the arc-tangent of the parameters."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the inverse hyperbolic tangent of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Finds the nearest integer that is greater than or equal to the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Constrains a value to lie between two further values."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the cosine of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the hyperbolic cosine of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Converts a quantity in radians to degrees."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Base-e Exponential."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Base-2 Exponential."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Finds the nearest integer less than or equal to the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Computes the fractional part of the argument."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the inverse of the square root of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Natural logarithm."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Base-2 logarithm."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the greater of two values."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the lesser of two values."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Linear interpolation between two scalars."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the opposite value of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "1.0 - scalar"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns the value of the first parameter raised to the power of the second."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Converts a quantity in degrees to radians."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "1.0 / scalar"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Finds the nearest integer to the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Finds the nearest even integer to the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Clamps the value between 0.0 and 1.0."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Extracts the sign of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the sine of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the hyperbolic sine of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the square root of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n"
+"\n"
+"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if x is larger than "
+"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
+"using Hermite polynomials."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Step function( scalar(edge), scalar(x) ).\n"
+"\n"
+"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the tangent of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the hyperbolic tangent of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Finds the truncated value of the parameter."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Adds scalar to scalar."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Divides scalar by scalar."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Multiplies scalar by scalar."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the remainder of the two scalars."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Subtracts scalar from scalar."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Scalar constant."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Scalar uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Perform the cubic texture lookup."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Perform the texture lookup."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Cubic texture uniform lookup."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "2D texture uniform lookup."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "2D texture uniform lookup with triplanar."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Transform function."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Calculate the outer product of a pair of vectors.\n"
+"\n"
+"OuterProduct treats the first parameter 'c' as a column vector (matrix with "
+"one column) and the second parameter 'r' as a row vector (matrix with one "
+"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix "
+"whose number of rows is the number of components in 'c' and whose number of "
+"columns is the number of components in 'r'."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Composes transform from four vectors."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Decomposes transform to four vectors."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Calculates the determinant of a transform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Calculates the inverse of a transform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Calculates the transpose of a transform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Multiplies transform by transform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Multiplies vector by transform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Transform constant."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Transform uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Vector function."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Vector operator."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Composes vector from three scalars."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Decomposes vector to three scalars."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Calculates the cross product of two vectors."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the distance between two points."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Calculates the dot product of two vectors."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns the vector that points in the same direction as a reference vector. "
+"The function has three vector parameters : N, the vector to orient, I, the "
+"incident vector, and Nref, the reference vector. If the dot product of I and "
+"Nref is smaller than zero the return value is N. Otherwise -N is returned."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Calculates the length of a vector."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Linear interpolation between two vectors."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Linear interpolation between two vectors using scalar."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Calculates the normalize product of vector."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "1.0 - vector"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "1.0 / vector"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns the vector that points in the direction of reflection ( a : incident "
+"vector, b : normal vector )."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the vector that points in the direction of refraction."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n"
+"\n"
+"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if 'x' is larger than "
+"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
+"using Hermite polynomials."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n"
+"\n"
+"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if 'x' is larger than "
+"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
+"using Hermite polynomials."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Step function( vector(edge), vector(x) ).\n"
+"\n"
+"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Step function( scalar(edge), vector(x) ).\n"
+"\n"
+"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Adds vector to vector."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Divides vector by vector."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Multiplies vector by vector."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Returns the remainder of the two vectors."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Subtracts vector from vector."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Vector constant."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Vector uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Custom Godot Shader Language expression, with custom amount of input and "
+"output ports. This is a direct injection of code into the vertex/fragment/"
+"light function, do not use it to write the function declarations inside."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Returns falloff based on the dot product of surface normal and view "
+"direction of camera (pass associated inputs to it)."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"Custom Godot Shader Language expression, which is placed on top of the "
+"resulted shader. You can place various function definitions inside and call "
+"it later in the Expressions. You can also declare varyings, uniforms and "
+"constants."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "A reference to an existing uniform."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "(Fragment/Light mode only) Scalar derivative function."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "(Fragment/Light mode only) Vector derivative function."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"(Fragment/Light mode only) (Vector) Derivative in 'x' using local "
+"differencing."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"(Fragment/Light mode only) (Scalar) Derivative in 'x' using local "
+"differencing."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"(Fragment/Light mode only) (Vector) Derivative in 'y' using local "
+"differencing."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"(Fragment/Light mode only) (Scalar) Derivative in 'y' using local "
+"differencing."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and "
+"'y'."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid ""
+"(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and "
+"'y'."
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "VisualShader"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Edit Visual Property:"
+msgstr ""
+
+#: editor/plugins/visual_shader_editor_plugin.cpp
+msgid "Visual Shader Mode Changed"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Runnable"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Delete preset '%s'?"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"Failed to export the project for platform '%s'.\n"
+"Export templates seem to be missing or invalid."
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"Failed to export the project for platform '%s'.\n"
+"This might be due to a configuration issue in the export preset or your "
+"export settings."
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Release"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Exporting All"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "The given export path doesn't exist:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Presets"
+msgstr ""
+
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+msgid "Add..."
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"If checked, the preset will be available for use in one-click deploy.\n"
+"Only one preset per platform may be marked as runnable."
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export Path"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Resources"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export all resources in the project"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export selected scenes (and dependencies)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export selected resources (and dependencies)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export Mode:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Resources to export:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"Filters to export non-resource files/folders\n"
+"(comma-separated, e.g: *.json, *.txt, docs/*)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"Filters to exclude files/folders from project\n"
+"(comma-separated, e.g: *.json, *.txt, docs/*)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Features"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Custom (comma-separated):"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Feature List:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Script"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "GDScript Export Mode:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Text"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Compiled Bytecode (Faster Loading)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Encrypted (Provide Key Below)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "GDScript Encryption Key (256-bits as hexadecimal):"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export PCK/Zip"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export Project"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export mode?"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export All"
+msgstr ""
+
+#: editor/project_export.cpp editor/project_manager.cpp
+msgid "ZIP File"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Godot Game Pack"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export templates for this platform are missing:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Manage Export Templates"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export With Debug"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "The path specified doesn't exist."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Error opening package file (it's not in ZIP format)."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Please choose an empty folder."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Please choose a \"project.godot\" or \".zip\" file."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "This directory already contains a Godot project."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "New Game Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Imported Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Invalid project name."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't create folder."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "There is already a folder in this path with the specified name."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "It would be a good idea to name your project."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Invalid project path (changed anything?)."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Couldn't load project.godot in project path (error %d). It may be missing or "
+"corrupted."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't edit project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't create project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Error opening package file, not in ZIP format."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "The following files failed extraction from package:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Package installed successfully!"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Rename Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Import Existing Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Import & Edit"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Create New Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Create & Edit"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Install Project:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Install & Edit"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project Name:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project Path:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project Installation Path:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Renderer:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "OpenGL ES 3.0"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Not supported by your GPU drivers."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Higher visual quality\n"
+"All features available\n"
+"Incompatible with older hardware\n"
+"Not recommended for web games"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "OpenGL ES 2.0"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Lower visual quality\n"
+"Some features not available\n"
+"Works on most hardware\n"
+"Recommended for web games"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Renderer can be changed later, but scenes may need to be adjusted."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Unnamed Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Missing Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Error: Project is missing on the filesystem."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Can't open project at '%s'."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Are you sure to open more than one project?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"The following project settings file does not specify the version of Godot "
+"through which it was created.\n"
+"\n"
+"%s\n"
+"\n"
+"If you proceed with opening it, it will be converted to Godot's current "
+"configuration file format.\n"
+"Warning: You won't be able to open the project with previous versions of the "
+"engine anymore."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"The following project settings file was generated by an older engine "
+"version, and needs to be converted for this version:\n"
+"\n"
+"%s\n"
+"\n"
+"Do you want to convert it?\n"
+"Warning: You won't be able to open the project with previous versions of the "
+"engine anymore."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"The project settings were created by a newer engine version, whose settings "
+"are not compatible with this version."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Can't run project: no main scene defined.\n"
+"Please edit the project and set the main scene in the Project Settings under "
+"the \"Application\" category."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Can't run project: Assets need to be imported.\n"
+"Please edit the project to trigger the initial import."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Are you sure to run %d projects at once?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Remove %d projects from the list?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Remove this project from the list?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Remove all missing projects from the list?\n"
+"The project folders' contents won't be modified."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Language changed.\n"
+"The interface will update after restarting the editor or project manager."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Are you sure to scan %s folders for existing Godot projects?\n"
+"This could take a while."
+msgstr ""
+
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
+#: editor/project_manager.cpp
+msgid "Project Manager"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Local Projects"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Loading, please wait..."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Last Modified"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Edit Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Run Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Scan"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Scan Projects"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Select a Folder to Scan"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "New Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Import Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Remove Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Remove Missing"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "About"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Asset Library Projects"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Restart Now"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Remove All"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Also delete project contents (no undo!)"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Can't run project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"You currently don't have any projects.\n"
+"Would you like to explore official example projects in the Asset Library?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Filter projects"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"This field filters projects by name and last path component.\n"
+"To filter projects by name and full path, the query must contain at least "
+"one `/` character."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Physical Key"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Key "
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joy Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joy Axis"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Mouse Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid ""
+"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
+"'\"'"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "An action with the name '%s' already exists."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Rename Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Change Action deadzone"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "All Devices"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Device"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid " (Physical)"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Press a Key..."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Mouse Button Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Left Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Right Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Middle Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Up Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Down Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Left Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Right Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "X Button 1"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "X Button 2"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joypad Axis Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Axis"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joypad Button Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Erase Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Erase Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Left Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Right Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Middle Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Up."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Down."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Global Property"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Select a setting item first!"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "No property '%s' exists."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Setting '%s' is internal, and it can't be deleted."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Delete Item"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid ""
+"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
+"'\"'."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Error saving settings."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Settings saved OK."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Moved Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Override for Feature"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add %d Translations"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Translation"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Translation Resource Remap: Add %d Path(s)"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Translation Resource Remap: Add %d Remap(s)"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Change Resource Remap Language"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Resource Remap"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Resource Remap Option"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Changed Locale Filter"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Changed Locale Filter Mode"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Project Settings (project.godot)"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "General"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Override For..."
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "The editor must be restarted for changes to take effect."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Input Map"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Action:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Deadzone"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Device:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Localization"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Translations"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Translations:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remaps"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Resources:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remaps by Locale:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locale"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locales Filter"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Show All Locales"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Show Selected Locales Only"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Filter mode:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locales:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "AutoLoad"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Plugins"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Import Defaults"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Preset..."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Zero"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Easing In-Out"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Easing Out-In"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "File..."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Dir..."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Assign"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Select Node"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Error loading file: Not a resource!"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Pick a Node"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Bit %d, val %d."
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Property"
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Virtual Method"
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Method"
+msgstr ""
+
+#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
+msgid "Batch Rename"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Use Regular Expressions"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Advanced Options"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Substitute"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Node name"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Node's parent name, if available"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Node type"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Current scene name"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Root node name"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid ""
+"Sequential integer counter.\n"
+"Compare counter options."
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Per-level Counter"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "If set, the counter restarts for each group of child nodes."
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Initial value for the counter"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Step"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Amount by which counter is incremented for each node"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Padding"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid ""
+"Minimum number of digits for the counter.\n"
+"Missing digits are padded with leading zeros."
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Post-Process"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Style"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Keep"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "PascalCase to snake_case"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "snake_case to PascalCase"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Case"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "To Lowercase"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "To Uppercase"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Reset"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Regular Expression Error:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "At character %s"
+msgstr ""
+
+#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
+msgid "Reparent Node"
+msgstr ""
+
+#: editor/reparent_dialog.cpp
+msgid "Reparent Location (Select new Parent):"
+msgstr ""
+
+#: editor/reparent_dialog.cpp
+msgid "Keep Global Transform"
+msgstr ""
+
+#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
+msgid "Reparent"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Run Mode:"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Current Scene"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Main Scene"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Main Scene Arguments:"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Scene Run Settings"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "No parent to instance the scenes at."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error loading scene from %s"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot instance the scene '%s' because the current scene exists within one "
+"of its nodes."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Instance Scene(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Replace with Branch Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Instance Child Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can't paste root node into the same scene."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Paste Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Detach Script"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "This operation can't be done on the tree root."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Move Node In Parent"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Move Nodes In Parent"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Duplicate Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can't reparent nodes in inherited scenes, order of nodes can't change."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Node must belong to the edited scene to become root."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Instantiated scenes can't become root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Make node as Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete the root node \"%s\"?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete node \"%s\" and its children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete node \"%s\"?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Saving the branch as a scene requires having a scene open in the editor."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Saving the branch as a scene requires selecting only one node, but you have "
+"selected %d nodes."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save the root node branch as an instanced scene.\n"
+"To create an editable copy of the current scene, duplicate it using the "
+"FileSystem dock context menu\n"
+"or create an inherited scene using Scene > New Inherited Scene... instead."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save the branch of an already instanced scene.\n"
+"To create a variation of a scene, you can make an inherited scene based on "
+"the instanced scene using Scene > New Inherited Scene... instead."
+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 ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Disabling \"editable_instance\" will cause all properties of the node to be "
+"reverted to their default."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and "
+"cause all properties of the node to be reverted to their default."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Make Local"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "New Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Create Root Node:"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "2D Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "3D Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "User Interface"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Other Node"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes from a foreign scene!"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes the current scene inherits from!"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "This operation can't be done on instanced scenes."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Attach Script"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Cut Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Remove Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Change type of node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Couldn't save new scene. Likely dependencies (instances) couldn't be "
+"satisfied."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error saving scene."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error duplicating scene to save it."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Sub-Resources"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear Inheritance"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Editable Children"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Load As Placeholder"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot attach a script: there are no languages registered.\n"
+"This is probably because this editor was built with all language modules "
+"disabled."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Add Child Node"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Expand/Collapse All"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Change Type"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Reparent to New Node"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Make Scene Root"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Merge From Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
+msgid "Save Branch as Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
+msgid "Copy Node Path"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete (No Confirm)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Add/Create a New Node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Instance a scene file as a Node. Creates an inherited scene if no root node "
+"exists."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Attach a new or existing script to the selected node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Detach the script from the selected node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Remote"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"If selected, the Remote scene tree dock will cause the project to stutter "
+"every time it updates.\n"
+"Switch back to the Local scene tree dock to improve performance."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Local"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear Inheritance? (No Undo!)"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Toggle Visible"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Unlock Node"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Button Group"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "(Connecting From)"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Node configuration warning:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node has %s connection(s) and %s group(s).\n"
+"Click to show signals dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node has %s connection(s).\n"
+"Click to show signals dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node is in %s group(s).\n"
+"Click to show groups dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Open Script:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node is locked.\n"
+"Click to unlock it."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Children are not selectable.\n"
+"Click to make selectable."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Toggle Visibility"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"AnimationPlayer is pinned.\n"
+"Click to unpin."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Invalid node name, the following characters are not allowed:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Rename Node"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Scene Tree (Nodes):"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Node Configuration Warning!"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Select a Node"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Path is empty."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Filename is empty."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Path is not local."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid base path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "A directory with the same name exists."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid extension."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Wrong extension chosen."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error loading template '%s'"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error - Could not create script in filesystem."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Overrides"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "N/A"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Open Script / Choose Location"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Open Script"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "File exists, it will be reused."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid class name."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid inherited parent name or path."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Script path/name is valid."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Allowed: a-z, A-Z, 0-9, _ and ."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Built-in script (into scene file)."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Will create a new script file."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Will load an existing script file."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Script file already exists."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid ""
+"Note: Built-in scripts have some limitations and can't be edited using an "
+"external editor."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid ""
+"Warning: Having the script name be the same as a built-in type is usually "
+"not desired."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Class Name:"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Template:"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Built-in Script:"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Attach Node Script"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Remote "
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Bytes:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Warning:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Error:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "C++ Error"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "C++ Error:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "C++ Source"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Source:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "C++ Source:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Stack Trace"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Errors"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Child process connected."
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Copy Error"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Open C++ Source on GitHub"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Video RAM"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Skip Breakpoints"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Inspect Previous Instance"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Inspect Next Instance"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Stack Frames"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Profiler"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Network Profiler"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Monitor"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Value"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Monitors"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Pick one or more items from the list to display the graph."
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "List of Video Memory Usage by Resource:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Total:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Export list to a CSV file"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Resource Path"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Type"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Format"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Usage"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Misc"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Clicked Control:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Clicked Control Type:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Live Edit Root:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Set From Tree"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Export measures as CSV"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Erase Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Restore Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Change Shortcut"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Editor Settings"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Shortcuts"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Light Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change AudioStreamPlayer3D Emission Angle"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Camera FOV"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Camera Size"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Notifier AABB"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Particles AABB"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
+msgid "Change Sphere Shape Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
+msgid "Change Box Shape Extents"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Height"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Cylinder Shape Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Cylinder Shape Height"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Ray Shape Length"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Room Point Position"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Portal Point Position"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Sphere Position"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Polygon Point Position"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Set Occluder Hole Point Position"
+msgstr ""
+
+#: modules/csg/csg_gizmos.cpp
+msgid "Change Cylinder Radius"
+msgstr ""
+
+#: modules/csg/csg_gizmos.cpp
+msgid "Change Cylinder Height"
+msgstr ""
+
+#: modules/csg/csg_gizmos.cpp
+msgid "Change Torus Inner Radius"
+msgstr ""
+
+#: modules/csg/csg_gizmos.cpp
+msgid "Change Torus Outer Radius"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Remove current entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Enabled GDNative Singleton"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Disabled GDNative Singleton"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Libraries: "
+msgstr ""
+
+#: modules/gdnative/register_types.cpp
+msgid "GDNative"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Step argument is zero!"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not a script with an instance"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not based on a script"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not based on a resource file"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (missing @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (can't load script at @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (invalid script at @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary (invalid subclasses)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Object can't provide a length."
+msgstr ""
+
+#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
+msgid "Export Mesh GLTF2"
+msgstr ""
+
+#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
+msgid "Export GLTF..."
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Next Plane"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Previous Plane"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Plane:"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Next Floor"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Previous Floor"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Floor:"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Delete Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Fill Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paste Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Paint"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Grid Map"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Snap View"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Disabled"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Above"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Below"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit X Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit Y Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit Z Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate X"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate Y"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate Z"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate X"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate Y"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate Z"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Clear Rotation"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Paste Selects"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clear Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Fill Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Settings"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Pick Distance:"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Filter meshes"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
+msgstr ""
+
+#: modules/lightmapper_cpu/lightmapper_cpu.cpp
+msgid "Begin Bake"
+msgstr ""
+
+#: modules/lightmapper_cpu/lightmapper_cpu.cpp
+msgid "Preparing data structures"
+msgstr ""
+
+#: modules/lightmapper_cpu/lightmapper_cpu.cpp
+msgid "Generate buffers"
+msgstr ""
+
+#: modules/lightmapper_cpu/lightmapper_cpu.cpp
+msgid "Direct lighting"
+msgstr ""
+
+#: modules/lightmapper_cpu/lightmapper_cpu.cpp
+msgid "Indirect lighting"
+msgstr ""
+
+#: modules/lightmapper_cpu/lightmapper_cpu.cpp
+msgid "Post processing"
+msgstr ""
+
+#: modules/lightmapper_cpu/lightmapper_cpu.cpp
+msgid "Plotting lightmaps"
+msgstr ""
+
+#: modules/mono/csharp_script.cpp
+msgid "Class name can't be a reserved keyword"
+msgstr ""
+
+#: modules/mono/csharp_script.cpp
+msgid "Build Solution"
+msgstr ""
+
+#: modules/mono/mono_gd/gd_mono_utils.cpp
+msgid "End of inner exception stack trace"
+msgstr ""
+
+#: 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/navigation/navigation_mesh_editor_plugin.cpp
+msgid "Clear the navigation mesh."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Setting up Configuration..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Calculating grid size..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Creating heightfield..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Marking walkable triangles..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Constructing compact heightfield..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Eroding walkable area..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Partitioning..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Creating contours..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Creating polymesh..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Converting to native navigation mesh..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Navigation Mesh Generator Setup:"
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Parsing Geometry..."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_generator.cpp
+msgid "Done!"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"A node yielded without working memory, please read the docs on how to yield "
+"properly!"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"Node yielded, but did not return a function state in the first working "
+"memory."
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"Return value must be assigned to first element of node working memory! Fix "
+"your node please."
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Node returned an invalid sequence output: "
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Found sequence bit but not the node in the stack, report bug!"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Stack overflow with stack depth: "
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Signal Arguments"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Argument Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Argument name"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Set Variable Default Value"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Set Variable Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Input Port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Output Port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Port Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Port Name"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Override an existing built-in function."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Create a new function."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Variables:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Create a new variable."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Signals:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Create a new signal."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Name is not a valid identifier:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Name already in use by another func/var/signal:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Delete input port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Input Port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Output Port"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Expression"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Duplicate VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a simple reference to the node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a simple reference to the node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a Variable Setter."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a Variable Setter."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Preload Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node(s)"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node(s) From Tree"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid ""
+"Can't drop properties because script '%s' is not used in this scene.\n"
+"Drop holding 'Shift' to just copy the signature."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Getter Property"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Setter Property"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Base Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Move Node(s)"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove VisualScript Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Connect Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Disconnect Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Connect Node Data"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Connect Node Sequence"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Script already has function '%s'"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Input Value"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Resize Comment"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Can't copy the function node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Paste VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Can't create function with a function node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Can't create function of nodes from nodes of multiple functions."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Select at least one node with sequence port."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Try to only have one sequence input in selection."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Create Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Editing Variable:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Editing Signal:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Make Tool:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Members:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Base Type:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Nodes..."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Function..."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "function_name"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Select or create a function to edit its graph."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Delete Selected"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Find Node Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Copy Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Cut Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Make Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Refresh Graph"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Member"
+msgstr ""
+
+#: modules/visual_script/visual_script_expression.cpp
+msgid "Expression"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Return"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Condition"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "if (cond) is:"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "While"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "while (cond):"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Iterator"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "for (elem) in (input):"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Input type not iterable: "
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Iterator became invalid"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Iterator became invalid: "
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Sequence"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "in order:"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Switch"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "'input' is:"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Type Cast"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Is %s?"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "On %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "On Self"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Subtract %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Multiply %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Divide %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Mod %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "ShiftLeft %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "ShiftRight %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "BitAnd %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "BitOr %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "BitXor %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+#: modules/visual_script/visual_script_nodes.cpp
+#: modules/visual_script/visual_script_property_selector.cpp
+msgid "Get %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Invalid index property name."
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Base object is not a Node!"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Path does not lead Node!"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Invalid index property name '%s' in node %s."
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Emit %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Compose Array"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ": Invalid argument of type: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ": Invalid arguments: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "a if cond, else b"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "VariableGet not found in script: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "VariableSet not found in script: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Preload"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Get Index"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Set Index"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Global Constant"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Class Constant"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Basic Constant"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Math Constant"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Get Engine Singleton"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Get Scene Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Get Scene Tree"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Get Self"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "CustomNode"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Custom node has no _step() method, can't process graph."
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ""
+"Invalid return value from _step(), must be integer (seq out), or string "
+"(error)."
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "SubCall"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Construct %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Get Local Var"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Set Local Var"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Action %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Deconstruct %s"
+msgstr ""
+
+#: modules/visual_script/visual_script_property_selector.cpp
+msgid "Search VisualScript"
+msgstr ""
+
+#: modules/visual_script/visual_script_yield_nodes.cpp
+msgid "Yield"
+msgstr ""
+
+#: modules/visual_script/visual_script_yield_nodes.cpp
+msgid "Wait"
+msgstr ""
+
+#: modules/visual_script/visual_script_yield_nodes.cpp
+msgid "Next Frame"
+msgstr ""
+
+#: modules/visual_script/visual_script_yield_nodes.cpp
+msgid "Next Physics Frame"
+msgstr ""
+
+#: modules/visual_script/visual_script_yield_nodes.cpp
+msgid "%s sec(s)"
+msgstr ""
+
+#: modules/visual_script/visual_script_yield_nodes.cpp
+msgid "WaitSignal"
+msgstr ""
+
+#: modules/visual_script/visual_script_yield_nodes.cpp
+msgid "WaitNodeSignal"
+msgstr ""
+
+#: modules/visual_script/visual_script_yield_nodes.cpp
+msgid "WaitInstanceSignal"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Package name is missing."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Package segments must be of non-zero length."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "The character '%s' is not allowed in Android application package names."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "A digit cannot be the first character in a package segment."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "The character '%s' cannot be the first character in a package segment."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "The package must have at least one '.' separator."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Select device from the list"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Running on %s"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Exporting APK..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Uninstalling..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Installing to device, please wait..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Could not install to device: %s"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Running on device..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Could not execute on device."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Unable to find the 'apksigner' tool."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Android build template not installed in the project. Install it from the "
+"Project menu."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Either Debug Keystore, Debug User AND Debug Password settings must be "
+"configured OR none of them."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Debug keystore not configured in the Editor Settings nor in the preset."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Either Release Keystore, Release User AND Release Password settings must be "
+"configured OR none of them."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Release keystore incorrectly configured in the export preset."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "A valid Android SDK path is required in Editor Settings."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Invalid Android SDK path in Editor Settings."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Missing 'platform-tools' directory!"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Unable to find Android SDK platform-tools' adb command."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Please check in the Android SDK directory specified in Editor Settings."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Missing 'build-tools' directory!"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Unable to find Android SDK build-tools' apksigner command."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Invalid public key for APK expansion."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Invalid package name:"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
+"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "\"Use Custom Build\" must be enabled to use the plugins."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" "
+"or \"OpenXR\"."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
+"enabled."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"'apksigner' could not be found.\n"
+"Please check the command is available in the Android SDK build-tools "
+"directory.\n"
+"The resulting %s is unsigned."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Signing debug %s..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Signing release %s..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Could not find keystore, unable to export."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "'apksigner' returned with error #%d"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Verifying %s..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "'apksigner' verification of %s failed."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Exporting for Android"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Invalid filename! Android App Bundle requires the *.aab extension."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "APK Expansion not compatible with Android App Bundle."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Invalid filename! Android APK requires the *.apk extension."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Unsupported export format!\n"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Trying to build from a custom built template, but no version info for it "
+"exists. Please reinstall from the 'Project' menu."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Android build version mismatch:\n"
+" Template installed: %s\n"
+" Godot Version: %s\n"
+"Please reinstall Android build template from 'Project' menu."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Unable to overwrite res://android/build/res/*.xml files with project name"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Could not export project files to gradle project\n"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Could not write expansion package file!"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Building Android Project (gradle)"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Building of Android project failed, check output for the error.\n"
+"Alternatively visit docs.godotengine.org for Android build documentation."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Moving output"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Unable to copy and rename export file, check gradle project directory for "
+"outputs."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Package not found: %s"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Creating APK..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Could not find template APK to export:\n"
+"%s"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid ""
+"Missing libraries in the export template for the selected architectures: "
+"%s.\n"
+"Please build a template with all required libraries, or uncheck the missing "
+"architectures in the export preset."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Adding files..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Could not export project files"
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Aligning APK..."
+msgstr ""
+
+#: platform/android/export/export_plugin.cpp
+msgid "Could not unzip temporary unaligned APK."
+msgstr ""
+
+#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
+msgid "Identifier is missing."
+msgstr ""
+
+#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
+msgid "The character '%s' is not allowed in Identifier."
+msgstr ""
+
+#: platform/iphone/export/export.cpp
+msgid "App Store Team ID not specified - cannot configure the project."
+msgstr ""
+
+#: platform/iphone/export/export.cpp
+msgid "Invalid Identifier:"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Stop HTTP Server"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Run in Browser"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Run exported HTML in the system's default browser."
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not open template for export:"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Invalid export template:"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not write file:"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not read file:"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not read HTML shell:"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not create HTTP server directory:"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Error starting HTTP server:"
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Can't get filesystem access."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Failed to get Info.plist hash."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Invalid Info.plist, no exe name."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Invalid Info.plist, no bundle id."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Invalid Info.plist, can't load."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Failed to create \"%s\" subfolder."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Failed to extract thin binary."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Invalid binary format."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Already signed!"
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Failed to process nested resources."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Failed to create _CodeSignature subfolder."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Failed to get CodeResources hash."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
+msgid "Invalid entitlements file."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Invalid executable file."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Can't resize signature load command."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Failed to create fat binary."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Unknown bundle type."
+msgstr ""
+
+#: platform/osx/export/codesign.cpp
+msgid "Unknown object type."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Note: The notarization process generally takes less than an hour. When the "
+"process is completed, you'll receive an email."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"You can check progress manually by opening a Terminal and running the "
+"following command:"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Run the following command to staple the notarization ticket to the exported "
+"application (optional):"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "No identity found."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Creating app bundle"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Could not find template app to export:"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Relative symlinks are not supported on this OS, the exported project might "
+"be broken!"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Requested template binary '%s' not found. It might be missing from your "
+"template archive."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Making PKG"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Ad-hoc signed applications require the 'Disable Library Validation' "
+"entitlement to load dynamic libraries."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Code signing bundle"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Making DMG"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Code signing DMG"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Making ZIP"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Notarization requires the app to be archived first, select the DMG or ZIP "
+"export format instead."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Sending archive for notarization"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Invalid bundle identifier:"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
+"signing is limited to ad-hoc signature only."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Warning: Xcode command line tools are not installed, using built-in "
+"\"codesign\". Code signing is limited to ad-hoc signature only."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Notarization: Notarization with an ad-hoc signature is not supported."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Notarization: Code signing is required for notarization."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Notarization: Hardened runtime is required for notarization."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Notarization: Timestamp runtime is required for notarization."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Notarization: Apple ID name not specified."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid "Notarization: Apple ID password not specified."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Warning: Notarization is disabled. The exported project will be blocked by "
+"Gatekeeper if it's downloaded from an unknown source."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Code signing is disabled. The exported project will not run on Macs with "
+"enabled Gatekeeper and Apple Silicon powered Macs."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Hardened Runtime is not compatible with ad-hoc signature, and will be "
+"disabled!"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Warning: Notarization is not supported from this OS. The exported project "
+"will be blocked by Gatekeeper if it's downloaded from an unknown source."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Privacy: Microphone access is enabled, but usage description is not "
+"specified."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Privacy: Camera access is enabled, but usage description is not specified."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Privacy: Location information access is enabled, but usage description is "
+"not specified."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Privacy: Address book access is enabled, but usage description is not "
+"specified."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Privacy: Calendar access is enabled, but usage description is not specified."
+msgstr ""
+
+#: platform/osx/export/export.cpp
+msgid ""
+"Privacy: Photo library access is enabled, but usage description is not "
+"specified."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid package short name."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid package unique name."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid package publisher display name."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid product GUID."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid publisher GUID."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid background color."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid Store Logo image dimensions (should be 50x50)."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
+msgstr ""
+
+#: platform/uwp/export/export.cpp
+msgid "Invalid splash screen image dimensions (should be 620x300)."
+msgstr ""
+
+#: platform/windows/export/export.cpp
+msgid ""
+"The rcedit tool must be configured in the Editor Settings (Export > Windows "
+"> Rcedit) to change the icon or app information data."
+msgstr ""
+
+#: platform/windows/export/export.cpp
+msgid "Invalid icon path:"
+msgstr ""
+
+#: platform/windows/export/export.cpp
+msgid "Invalid file version:"
+msgstr ""
+
+#: platform/windows/export/export.cpp
+msgid "Invalid product version:"
+msgstr ""
+
+#: scene/2d/animated_sprite.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the \"Frames\" property in "
+"order for AnimatedSprite to display frames."
+msgstr ""
+
+#: scene/2d/canvas_modulate.cpp
+msgid ""
+"Only one visible CanvasModulate is allowed per scene (or set of instanced "
+"scenes). The first created one will work, while the rest will be ignored."
+msgstr ""
+
+#: scene/2d/collision_object_2d.cpp
+msgid ""
+"This node has no shape, so it can't collide or interact with other objects.\n"
+"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to "
+"define its shape."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid ""
+"CollisionPolygon2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid "An empty CollisionPolygon2D has no effect on collision."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode."
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"CollisionShape2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"A shape must be provided for CollisionShape2D to function. Please create a "
+"shape resource for it!"
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
+#: scene/2d/cpu_particles_2d.cpp
+msgid ""
+"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
+"\"Particles Animation\" enabled."
+msgstr ""
+
+#: scene/2d/joints_2d.cpp
+msgid "Node A and Node B must be PhysicsBody2Ds"
+msgstr ""
+
+#: scene/2d/joints_2d.cpp
+msgid "Node A must be a PhysicsBody2D"
+msgstr ""
+
+#: scene/2d/joints_2d.cpp
+msgid "Node B must be a PhysicsBody2D"
+msgstr ""
+
+#: scene/2d/joints_2d.cpp
+msgid "Joint is not connected to two PhysicsBody2Ds"
+msgstr ""
+
+#: scene/2d/joints_2d.cpp
+msgid "Node A and Node B must be different PhysicsBody2Ds"
+msgstr ""
+
+#: scene/2d/light_2d.cpp
+msgid ""
+"A texture with the shape of the light must be supplied to the \"Texture\" "
+"property."
+msgstr ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid ""
+"An occluder polygon must be set (or drawn) for this occluder to take effect."
+msgstr ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
+msgstr ""
+
+#: scene/2d/navigation_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. "
+"Please set a property or draw a polygon."
+msgstr ""
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
+"node. It only provides navigation data."
+msgstr ""
+
+#: scene/2d/parallax_layer.cpp
+msgid ""
+"ParallaxLayer node only works when set as child of a ParallaxBackground node."
+msgstr ""
+
+#: scene/2d/particles_2d.cpp
+msgid ""
+"GPU-based particles are not supported by the GLES2 video driver.\n"
+"Use the CPUParticles2D node instead. You can use the \"Convert to "
+"CPUParticles2D\" toolbar option for this purpose."
+msgstr ""
+
+#: scene/2d/particles_2d.cpp
+msgid ""
+"On macOS, Particles2D rendering is much slower than CPUParticles2D due to "
+"transform feedback being implemented on the CPU instead of the GPU.\n"
+"Consider using CPUParticles2D instead when targeting macOS.\n"
+"You can use the \"Convert to CPUParticles2D\" toolbar option for this "
+"purpose."
+msgstr ""
+
+#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
+msgid ""
+"A material to process the particles is not assigned, so no behavior is "
+"imprinted."
+msgstr ""
+
+#: scene/2d/particles_2d.cpp
+msgid ""
+"Particles2D animation requires the usage of a CanvasItemMaterial with "
+"\"Particles Animation\" enabled."
+msgstr ""
+
+#: scene/2d/path_2d.cpp
+msgid "PathFollow2D only works when set as a child of a Path2D node."
+msgstr ""
+
+#: scene/2d/physics_body_2d.cpp
+msgid ""
+"Size changes to RigidBody2D (in character or rigid modes) will be overridden "
+"by the physics engine when running.\n"
+"Change the size in children collision shapes instead."
+msgstr ""
+
+#: scene/2d/remote_transform_2d.cpp
+msgid "Path property must point to a valid Node2D node to work."
+msgstr ""
+
+#: scene/2d/skeleton_2d.cpp
+msgid "This Bone2D chain should end at a Skeleton2D node."
+msgstr ""
+
+#: scene/2d/skeleton_2d.cpp
+msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
+msgstr ""
+
+#: scene/2d/skeleton_2d.cpp
+msgid ""
+"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one."
+msgstr ""
+
+#: scene/2d/tile_map.cpp
+msgid ""
+"TileMap with Use Parent on needs a parent CollisionObject2D to give shapes "
+"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
+"KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/visibility_notifier_2d.cpp
+msgid ""
+"VisibilityEnabler2D works best when used with the edited scene root directly "
+"as parent."
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRCamera must have an ARVROrigin node as its parent."
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRController must have an ARVROrigin node as its parent."
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid ""
+"The controller ID must not be 0 or this controller won't be bound to an "
+"actual controller."
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRAnchor must have an ARVROrigin node as its parent."
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid ""
+"The anchor ID must not be 0 or this anchor won't be bound to an actual "
+"anchor."
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVROrigin requires an ARVRCamera child node."
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Finding meshes and lights"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Preparing geometry (%d/%d)"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Preparing environment"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Generating capture"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Saving lightmaps"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Done"
+msgstr ""
+
+#: scene/3d/collision_object.cpp
+msgid ""
+"This node has no shape, so it can't collide or interact with other objects.\n"
+"Consider adding a CollisionShape or CollisionPolygon as a child to define "
+"its shape."
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid ""
+"CollisionPolygon only serves to provide a collision shape to a "
+"CollisionObject derived node. Please only use it as a child of Area, "
+"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid "An empty CollisionPolygon has no effect on collision."
+msgstr ""
+
+#: scene/3d/collision_shape.cpp
+msgid ""
+"CollisionShape only serves to provide a collision shape to a CollisionObject "
+"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
+"KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/collision_shape.cpp
+msgid ""
+"A shape must be provided for CollisionShape to function. Please create a "
+"shape resource for it."
+msgstr ""
+
+#: scene/3d/collision_shape.cpp
+msgid ""
+"Plane shapes don't work well and will be removed in future versions. Please "
+"don't use them."
+msgstr ""
+
+#: scene/3d/collision_shape.cpp
+msgid ""
+"ConcavePolygonShape doesn't support RigidBody in another mode than static."
+msgstr ""
+
+#: scene/3d/cpu_particles.cpp
+msgid "Nothing is visible because no mesh has been assigned."
+msgstr ""
+
+#: scene/3d/cpu_particles.cpp
+msgid ""
+"CPUParticles animation requires the usage of a SpatialMaterial whose "
+"Billboard Mode is set to \"Particle Billboard\"."
+msgstr ""
+
+#: scene/3d/gi_probe.cpp
+msgid "Plotting Meshes"
+msgstr ""
+
+#: scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/gi_probe.cpp
+msgid ""
+"GIProbes are not supported by the GLES2 video driver.\n"
+"Use a BakedLightmap instead."
+msgstr ""
+
+#: scene/3d/gi_probe.cpp
+msgid ""
+"The GIProbe Compress property has been deprecated due to known bugs and no "
+"longer has any effect.\n"
+"To remove this warning, disable the GIProbe's Compress property."
+msgstr ""
+
+#: scene/3d/light.cpp
+msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
+msgstr ""
+
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
+
+#: 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 ""
+
+#: scene/3d/occluder.cpp
+msgid "Only uniform scales are supported."
+msgstr ""
+
+#: scene/3d/particles.cpp
+msgid ""
+"GPU-based particles are not supported by the GLES2 video driver.\n"
+"Use the CPUParticles node instead. You can use the \"Convert to "
+"CPUParticles\" toolbar option for this purpose."
+msgstr ""
+
+#: scene/3d/particles.cpp
+msgid ""
+"On macOS, Particles rendering is much slower than CPUParticles due to "
+"transform feedback being implemented on the CPU instead of the GPU.\n"
+"Consider using CPUParticles instead when targeting macOS.\n"
+"You can use the \"Convert to CPUParticles\" toolbar option for this purpose."
+msgstr ""
+
+#: scene/3d/particles.cpp
+msgid ""
+"Nothing is visible because meshes have not been assigned to draw passes."
+msgstr ""
+
+#: scene/3d/particles.cpp
+msgid ""
+"Particles animation requires the usage of a SpatialMaterial whose Billboard "
+"Mode is set to \"Particle Billboard\"."
+msgstr ""
+
+#: scene/3d/path.cpp
+msgid "PathFollow only works when set as a child of a Path node."
+msgstr ""
+
+#: scene/3d/path.cpp
+msgid ""
+"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
+"parent Path's Curve resource."
+msgstr ""
+
+#: scene/3d/physics_body.cpp
+msgid ""
+"Size changes to RigidBody (in character or rigid modes) will be overridden "
+"by the physics engine when running.\n"
+"Change the size in children collision shapes instead."
+msgstr ""
+
+#: scene/3d/physics_joint.cpp
+msgid "Node A and Node B must be PhysicsBodies"
+msgstr ""
+
+#: scene/3d/physics_joint.cpp
+msgid "Node A must be a PhysicsBody"
+msgstr ""
+
+#: scene/3d/physics_joint.cpp
+msgid "Node B must be a PhysicsBody"
+msgstr ""
+
+#: scene/3d/physics_joint.cpp
+msgid "Joint is not connected to any PhysicsBodies"
+msgstr ""
+
+#: scene/3d/physics_joint.cpp
+msgid "Node A and Node B must be different PhysicsBodies"
+msgstr ""
+
+#: scene/3d/portal.cpp
+msgid "The RoomManager should not be a child or grandchild of a Portal."
+msgstr ""
+
+#: scene/3d/portal.cpp
+msgid "A Room should not be a child or grandchild of a Portal."
+msgstr ""
+
+#: scene/3d/portal.cpp
+msgid "A RoomGroup should not be a child or grandchild of a Portal."
+msgstr ""
+
+#: scene/3d/remote_transform.cpp
+msgid ""
+"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
+"derived node to work."
+msgstr ""
+
+#: scene/3d/room.cpp
+msgid "A Room cannot have another Room as a child or grandchild."
+msgstr ""
+
+#: scene/3d/room.cpp
+msgid "The RoomManager should not be placed inside a Room."
+msgstr ""
+
+#: scene/3d/room.cpp
+msgid "A RoomGroup should not be placed inside a Room."
+msgstr ""
+
+#: scene/3d/room.cpp
+msgid ""
+"Room convex hull contains a large number of planes.\n"
+"Consider simplifying the room bound in order to increase performance."
+msgstr ""
+
+#: scene/3d/room_group.cpp
+msgid "The RoomManager should not be placed inside a RoomGroup."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid "The RoomList has not been assigned."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid "The RoomList node should be a Spatial (or derived from Spatial)."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid ""
+"Portal Depth Limit is set to Zero.\n"
+"Only the Room that the Camera is in will render."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid "There should only be one RoomManager in the SceneTree."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid ""
+"RoomList path is invalid.\n"
+"Please check the RoomList branch has been assigned in the RoomManager."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid "RoomList contains no Rooms, aborting."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid "Misnamed nodes detected, check output log for details. Aborting."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid "Portal link room not found, check output log for details."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid ""
+"Portal autolink failed, check output log for details.\n"
+"Check the portal is facing outwards from the source room."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid ""
+"Room overlap detected, cameras may work incorrectly in overlapping area.\n"
+"Check output log for details."
+msgstr ""
+
+#: scene/3d/room_manager.cpp
+msgid ""
+"Error calculating room bounds.\n"
+"Ensure all rooms contain geometry or manual bounds."
+msgstr ""
+
+#: scene/3d/soft_body.cpp
+msgid "This body will be ignored until you set a mesh."
+msgstr ""
+
+#: scene/3d/soft_body.cpp
+msgid ""
+"Size changes to SoftBody will be overridden by the physics engine when "
+"running.\n"
+"Change the size in children collision shapes instead."
+msgstr ""
+
+#: scene/3d/sprite_3d.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the \"Frames\" property in "
+"order for AnimatedSprite3D to display frames."
+msgstr ""
+
+#: scene/3d/vehicle_body.cpp
+msgid ""
+"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
+"it as a child of a VehicleBody."
+msgstr ""
+
+#: scene/3d/world_environment.cpp
+msgid ""
+"WorldEnvironment requires its \"Environment\" property to contain an "
+"Environment to have a visible effect."
+msgstr ""
+
+#: scene/3d/world_environment.cpp
+msgid ""
+"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
+msgstr ""
+
+#: scene/3d/world_environment.cpp
+msgid ""
+"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set "
+"this environment's Background Mode to Canvas (for 2D scenes)."
+msgstr ""
+
+#: scene/animation/animation_blend_tree.cpp
+msgid "On BlendTree node '%s', animation not found: '%s'"
+msgstr ""
+
+#: scene/animation/animation_blend_tree.cpp
+msgid "Animation not found: '%s'"
+msgstr ""
+
+#: scene/animation/animation_player.cpp
+msgid "Anim Apply Reset"
+msgstr ""
+
+#: scene/animation/animation_tree.cpp
+msgid "In node '%s', invalid animation: '%s'."
+msgstr ""
+
+#: scene/animation/animation_tree.cpp
+msgid "Invalid animation: '%s'."
+msgstr ""
+
+#: scene/animation/animation_tree.cpp
+msgid "Nothing connected to input '%s' of node '%s'."
+msgstr ""
+
+#: scene/animation/animation_tree.cpp
+msgid "No root AnimationNode for the graph is set."
+msgstr ""
+
+#: scene/animation/animation_tree.cpp
+msgid "Path to an AnimationPlayer node containing animations is not set."
+msgstr ""
+
+#: scene/animation/animation_tree.cpp
+msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node."
+msgstr ""
+
+#: scene/animation/animation_tree.cpp
+msgid "The AnimationPlayer root node is not a valid node."
+msgstr ""
+
+#: scene/animation/animation_tree_player.cpp
+msgid "This node has been deprecated. Use AnimationTree instead."
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid ""
+"Color: #%s\n"
+"LMB: Apply color\n"
+"RMB: Remove preset"
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "Pick a color from the editor window."
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "HSV"
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "Raw"
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "Switch between hexadecimal and code values."
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "Add current color as a preset."
+msgstr ""
+
+#: scene/gui/container.cpp
+msgid ""
+"Container by itself serves no purpose unless a script configures its "
+"children placement behavior.\n"
+"If you don't intend to add a script, use a plain Control node instead."
+msgstr ""
+
+#: scene/gui/control.cpp
+msgid ""
+"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
+"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "Alert!"
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "Please Confirm..."
+msgstr ""
+
+#: scene/gui/file_dialog.cpp
+msgid "Must use a valid extension."
+msgstr ""
+
+#: scene/gui/graph_edit.cpp
+msgid "Enable grid minimap."
+msgstr ""
+
+#: scene/gui/nine_patch_rect.cpp
+msgid ""
+"The Tile and Tile Fit options for Axis Stretch properties are only effective "
+"when using the GLES3 rendering backend.\n"
+"The GLES2 backend is currently in use, so these modes will act like Stretch "
+"instead."
+msgstr ""
+
+#: scene/gui/popup.cpp
+msgid ""
+"Popups will hide by default unless you call popup() or any of the popup*() "
+"functions. Making them visible for editing is fine, but they will hide upon "
+"running."
+msgstr ""
+
+#: scene/gui/range.cpp
+msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
+msgstr ""
+
+#: scene/gui/scroll_container.cpp
+msgid ""
+"ScrollContainer is intended to work with a single child control.\n"
+"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
+"minimum size manually."
+msgstr ""
+
+#: scene/gui/tree.cpp
+msgid "(Other)"
+msgstr ""
+
+#: scene/main/scene_tree.cpp
+msgid ""
+"Default Environment as specified in Project Settings (Rendering -> "
+"Environment -> Default Environment) could not be loaded."
+msgstr ""
+
+#: scene/main/timer.cpp
+msgid ""
+"Very low timer wait times (< 0.05 seconds) may behave in significantly "
+"different ways depending on the rendered or physics frame rate.\n"
+"Consider using a script's process loop instead of relying on a Timer for "
+"very low wait times."
+msgstr ""
+
+#: scene/main/viewport.cpp
+msgid ""
+"This viewport is not set as render target. If you intend for it to display "
+"its contents directly to the screen, make it a child of a Control so it can "
+"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
+"texture to some node for display."
+msgstr ""
+
+#: scene/main/viewport.cpp
+msgid ""
+"The Viewport size must be greater than or equal to 2 pixels on both "
+"dimensions to render anything."
+msgstr ""
+
+#: scene/resources/occluder_shape.cpp
+msgid "OccluderShapeSphere Set Spheres"
+msgstr ""
+
+#: scene/resources/visual_shader_nodes.cpp
+msgid ""
+"The sampler port is connected but not used. Consider changing the source to "
+"'SamplerPort'."
+msgstr ""
+
+#: scene/resources/visual_shader_nodes.cpp
+msgid "Invalid source for preview."
+msgstr ""
+
+#: scene/resources/visual_shader_nodes.cpp
+msgid "Invalid source for shader."
+msgstr ""
+
+#: scene/resources/visual_shader_nodes.cpp
+msgid "Invalid comparison function for that type."
+msgstr ""
+
+#: servers/visual/shader_language.cpp
+msgid "Varying may not be assigned in the '%s' function."
+msgstr ""
+
+#: servers/visual/shader_language.cpp
+msgid ""
+"Varyings which assigned in 'vertex' function may not be reassigned in "
+"'fragment' or 'light'."
+msgstr ""
+
+#: servers/visual/shader_language.cpp
+msgid ""
+"Varyings which assigned in 'fragment' function may not be reassigned in "
+"'vertex' or 'light'."
+msgstr ""
+
+#: servers/visual/shader_language.cpp
+msgid "Assignment to function."
+msgstr ""
+
+#: servers/visual/shader_language.cpp
+msgid "Assignment to uniform."
+msgstr ""
+
+#: servers/visual/shader_language.cpp
+msgid "Constants cannot be modified."
+msgstr ""
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index 1a95fb6702..f77d1da645 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -1484,6 +1484,11 @@ msgstr "Ŝargi la defaŭlta busaranĝo."
msgid "Create a new Bus Layout."
msgstr "Krei nova busaranĝo."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Malfermi aranĝon de aŭdia buso"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Malvalida nomo."
@@ -2927,7 +2932,7 @@ msgstr "Baskuli sendistran reĝimon."
msgid "Add a new scene."
msgstr "Aldoni novan scenon."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Sceno"
@@ -5711,6 +5716,10 @@ msgid "Bake Lightmaps"
msgstr "Baki lummapojn"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Elekti dosieron por bakado de lummapo:"
@@ -8219,7 +8228,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9149,6 +9163,11 @@ msgid "Select Another Theme Resource:"
msgstr "Serĉi anstataŭiga risurco:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Renomi risurcon"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -9202,6 +9221,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Ŝanĝu la tipon de %s"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Ŝanĝu la tipon de %s"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Ŝargi defaŭlton"
@@ -9220,7 +9253,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Ŝanĝi tipon"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9919,18 +9963,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Matĉoj:"
@@ -12570,6 +12602,11 @@ msgid "Stack Frames"
msgstr "Stakaj Framoj"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtri signalojn"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profililo"
@@ -13912,6 +13949,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/es.po b/editor/translations/es.po
index d4f2364598..218eee6470 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -18,7 +18,7 @@
# Jose Maria Martinez <josemar1992@hotmail.com>, 2018.
# Juan Quiroga <juanquiroga9@gmail.com>, 2017.
# Kiji Pixel <raccoon.fella@gmail.com>, 2017.
-# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019, 2020, 2021.
+# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019, 2020, 2021, 2022.
# Lonsfor <lotharw@protonmail.com>, 2017-2018.
# Mario Nachbaur <manachbaur@gmail.com>, 2018.
# Oscar Carballal <oscar.carballal@protonmail.com>, 2017-2018.
@@ -73,13 +73,14 @@
# Anderson Guzman Abreu <chicobello1111@gmail.com>, 2021.
# Manuel Cantón Guillén <manuelcanton8@gmail.com>, 2021.
# Alfonso V <alfonsov96@gmail.com>, 2022.
+# Cristhian Pineda Castro <kurgancpc@hotmail.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: 2022-01-16 13:19+0000\n"
-"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
+"PO-Revision-Date: 2022-02-20 00:54+0000\n"
+"Last-Translator: Cristhian Pineda Castro <kurgancpc@hotmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
"Language: es\n"
@@ -87,7 +88,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.1\n"
+"X-Generator: Weblate 4.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1553,6 +1554,11 @@ msgstr "Cargar el Bus Layout predeterminado."
msgid "Create a new Bus Layout."
msgstr "Crear un nuevo Bus Layout."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Abrir Layout de Bus de Audio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nombre inválido."
@@ -2336,7 +2342,7 @@ msgstr "Propiedad:"
#: editor/editor_inspector.cpp
msgid "Pin value"
-msgstr "Valor de fijación"
+msgstr "Fijar Valor"
#: editor/editor_inspector.cpp
msgid ""
@@ -2345,7 +2351,7 @@ msgstr "Fijar un valor obliga a guardarlo aunque sea igual al predeterminado."
#: editor/editor_inspector.cpp
msgid "Pin value [Disabled because '%s' is editor-only]"
-msgstr "Valor de fijación [Desactivado porque '%s' es solo para el editor]"
+msgstr "Fijar Valor [Desactivado porque '%s' es solo para el editor]"
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_func_nodes.cpp
@@ -3008,7 +3014,7 @@ msgstr "Act./Desact. modo sin distracciones."
msgid "Add a new scene."
msgstr "Añadir nueva escena."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Escena"
@@ -3385,14 +3391,12 @@ msgid "Update Continuously"
msgstr "Actualizar Continuamente"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Actualizar Al Cambiar"
+msgstr "Actualizar todos los cambios"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Cambios del Material:"
+msgstr "Actualizar cambios vitales"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4178,6 +4182,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Esta extensión de archivo no es reconocida por el editor.\n"
+"Si desea cambiarle el nombre de todos modos, use el administrador de "
+"archivos de su sistema operativo.\n"
+"Después de cambiar el nombre a una extensión desconocida, el archivo ya no "
+"se mostrará en el editor."
#: editor/filesystem_dock.cpp
msgid ""
@@ -5799,6 +5808,10 @@ msgid "Bake Lightmaps"
msgstr "Calcular Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Selecciona un archivo lightmap bakeado:"
@@ -6268,7 +6281,7 @@ msgstr "Asegura que los hijos del objeto no sean seleccionables."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Group Selected Node(s)"
-msgstr "Grupo Nodo(s) Seleccionado(s)"
+msgstr "Agrupar Nodo(s) Seleccionado(s)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8294,7 +8307,13 @@ msgid "Cinematic Preview"
msgstr "Vista Previa Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "No disponible al utilizar el renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9190,6 +9209,11 @@ msgid "Select Another Theme Resource:"
msgstr "Seleccionar Otro Recurso del Theme:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Renombrar Recurso"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Otro Theme"
@@ -9239,6 +9263,20 @@ msgstr ""
"de este tipo."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Añadir Tipo de Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Establecer Tipo de la Variable"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Cambiar Tipo Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Por Defecto"
@@ -9257,8 +9295,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Cambiar Tipo Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9962,18 +10011,6 @@ msgid "Commit list size"
msgstr "Tamaño de la lista de confirmación"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Ramas"
@@ -12732,6 +12769,11 @@ msgid "Stack Frames"
msgstr "Fotogramas Apilados"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrar tiles"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Perfilador"
@@ -12905,14 +12947,12 @@ msgid "Set Occluder Sphere Position"
msgstr "Establecer Posición de la Esfera de Oclusión"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Polygon Point Position"
-msgstr "Establecer Posición del Portal Point"
+msgstr "Establecer posición del polígono oclusor"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Hole Point Position"
-msgstr "Establecer Posición de Punto de Curva"
+msgstr "Establecer posición del orificio del oclusor"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -14064,9 +14104,10 @@ msgstr "Nombre de paquete inválido:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"El módulo \"GodotPaymentV3\" incluido en los ajustes del proyecto \"android/"
-"modules\" es inválido (cambiado en Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14332,166 +14373,167 @@ msgstr "Error al iniciar el servidor HTTP:"
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "No se puede obtener acceso al sistema de archivos."
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "No se pudo obtener el hash de Info.plist."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "Nombre de Proyecto Inválido."
+msgstr "Info.plist no válido, sin nombre de exe."
#: platform/osx/export/codesign.cpp
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "Info.plist no válido, sin ID de paquete."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "Geometría inválida, no es posible crear un polígono."
+msgstr "Info.plist no válido, no se puede cargar."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "No se pudo crear la carpeta."
+msgstr "No se pudo crear la subcarpeta \"%s\"."
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
-msgstr ""
+msgstr "No se pudo extraer el binario delgado."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Ruta base incorrecta."
+msgstr "Formato binario no válido."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "¡Ha sido firmado!"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to process nested resources."
-msgstr "Error al cargar el recurso."
+msgstr "No se pudieron procesar los recursos anidados."
#: platform/osx/export/codesign.cpp
msgid "Failed to create _CodeSignature subfolder."
-msgstr ""
+msgstr "No se pudo crear la subcarpeta _CodeSignature."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to get CodeResources hash."
-msgstr "Error al cargar el recurso."
+msgstr "No se pudo obtener el hash de CodeResources."
#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid entitlements file."
-msgstr "Extensión inválida."
+msgstr "Archivo de derechos no válido."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "Extensión inválida."
+msgstr "Archivo ejecutable no válido."
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
-msgstr ""
+msgstr "No se puede cambiar el tamaño del comando de carga de la firma."
#: platform/osx/export/codesign.cpp
msgid "Failed to create fat binary."
-msgstr ""
+msgstr "No se pudo crear el binario gordo."
#: platform/osx/export/codesign.cpp
msgid "Unknown bundle type."
-msgstr ""
+msgstr "Tipo de paquete desconocido."
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "Tipo de objeto desconocido."
#: platform/osx/export/export.cpp
msgid ""
"Note: The notarization process generally takes less than an hour. When the "
"process is completed, you'll receive an email."
msgstr ""
+"Nota: El proceso de notarización generalmente toma menos de una hora. Cuando "
+"se complete el proceso, recibirá un correo electrónico."
#: platform/osx/export/export.cpp
msgid ""
"You can check progress manually by opening a Terminal and running the "
"following command:"
msgstr ""
+"Puede verificar el progreso manualmente abriendo una Terminal y ejecutando "
+"el siguiente comando:"
#: platform/osx/export/export.cpp
msgid ""
"Run the following command to staple the notarization ticket to the exported "
"application (optional):"
msgstr ""
+"Ejecute el siguiente comando para engrapar el boleto de certificación "
+"notarial a la aplicación exportada (opcional):"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "No se han encontrado icons."
+msgstr "No se encontró identidad."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Creating app bundle"
-msgstr "Creando Miniatura"
+msgstr "Crear paquete de aplicaciones"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"No se pudo encontrar la plantilla APK para exportar:\n"
-"%s"
+msgstr "No se pudo encontrar la aplicación de plantilla para exportar:"
#: platform/osx/export/export.cpp
msgid ""
"Relative symlinks are not supported on this OS, the exported project might "
"be broken!"
msgstr ""
+"Los enlaces simbólicos relativos no son compatibles con este sistema "
+"operativo, ¡el proyecto exportado podría estar dañado!"
#: platform/osx/export/export.cpp
msgid ""
"Requested template binary '%s' not found. It might be missing from your "
"template archive."
msgstr ""
+"Plantilla binaria solicitada '%s' no encontrada. Es posible que falte en el "
+"archivo de plantillas."
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "haciendo paquete"
#: platform/osx/export/export.cpp
msgid ""
"Ad-hoc signed applications require the 'Disable Library Validation' "
"entitlement to load dynamic libraries."
msgstr ""
+"Las aplicaciones firmadas ad-hoc requieren el derecho 'Desactivar validación "
+"de biblioteca' para cargar bibliotecas dinámicas."
#: platform/osx/export/export.cpp
msgid "Code signing bundle"
-msgstr ""
+msgstr "Paquete de firma de código"
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "Haciendo DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
-msgstr ""
+msgstr "Firma de código DMG"
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "Haciendo ZIP"
#: platform/osx/export/export.cpp
msgid ""
"Notarization requires the app to be archived first, select the DMG or ZIP "
"export format instead."
msgstr ""
+"La notarización requiere que la aplicación se archive primero, seleccione el "
+"formato de exportación DMG o ZIP en su lugar."
#: platform/osx/export/export.cpp
msgid "Sending archive for notarization"
-msgstr ""
+msgstr "Enviando archivo para notarización"
#: platform/osx/export/export.cpp
msgid "Invalid bundle identifier:"
@@ -14502,31 +14544,39 @@ msgid ""
"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
"signing is limited to ad-hoc signature only."
msgstr ""
+"Advertencia: El \"codiseño\" incorporado está seleccionado en la "
+"configuración del editor. La firma de código se limita únicamente a la firma "
+"ad-hoc."
#: platform/osx/export/export.cpp
msgid ""
"Warning: Xcode command line tools are not installed, using built-in "
"\"codesign\". Code signing is limited to ad-hoc signature only."
msgstr ""
+"Advertencia: las herramientas de línea de comandos de Xcode no están "
+"instaladas, utilizando el \"codiseño\" incorporado. La firma de código se "
+"limita únicamente a la firma ad-hoc."
#: platform/osx/export/export.cpp
msgid "Notarization: Notarization with an ad-hoc signature is not supported."
msgstr ""
+"Notarización: No se admite la certificación notarial con una firma ad-hoc."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Code signing is required for notarization."
-msgstr "Notarización: se requiere firma de código."
+msgstr "Notarización: Se requiere la firma del código para la notarización."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Hardened runtime is required for notarization."
-msgstr "Notarización: se requiere tiempo de ejecución reforzado."
+msgstr ""
+"Notarización: se requiere tiempo de ejecución endurecido para la "
+"certificación notarial."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Timestamp runtime is required for notarization."
-msgstr "Notarización: se requiere tiempo de ejecución reforzado."
+msgstr ""
+"Notarización: se requiere el tiempo de ejecución de la marca de tiempo para "
+"la certificación notarial."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
@@ -14541,63 +14591,84 @@ msgid ""
"Warning: Notarization is disabled. The exported project will be blocked by "
"Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Advertencia: La notarización está deshabilitada. Gatekeeper bloqueará el "
+"proyecto exportado si se descarga de una fuente desconocida."
#: platform/osx/export/export.cpp
msgid ""
"Code signing is disabled. The exported project will not run on Macs with "
"enabled Gatekeeper and Apple Silicon powered Macs."
msgstr ""
+"La firma de código está deshabilitada. El proyecto exportado no se ejecutará "
+"en Mac con Gatekeeper habilitado y Mac con tecnología Apple Silicon."
#: platform/osx/export/export.cpp
msgid ""
"Hardened Runtime is not compatible with ad-hoc signature, and will be "
"disabled!"
msgstr ""
+"Hardened Runtime no es compatible con la firma ad-hoc, y se desactivará!"
#: platform/osx/export/export.cpp
msgid ""
"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
msgstr ""
+"El sellado de tiempo no es compatible con la firma ad-hoc, y se desactivará!"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Notarization is not supported from this OS. The exported project "
"will be blocked by Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Advertencia: la notarización no es compatible con este sistema operativo. "
+"Gatekeeper bloqueará el proyecto exportado si se descarga de una fuente "
+"desconocida."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
msgstr ""
+"Privacidad: el acceso al micrófono está habilitado, pero no se especifica la "
+"descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
msgstr ""
+"Privacidad: el acceso a la cámara está habilitado, pero no se especifica la "
+"descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
msgstr ""
+"Privacidad: el acceso a la información de ubicación está habilitado, pero no "
+"se especifica la descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
msgstr ""
+"Privacidad: el acceso a la libreta de direcciones está habilitado, pero no "
+"se especifica la descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
msgstr ""
+"Privacidad: el acceso al calendario está habilitado, pero no se especifica "
+"la descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Photo library access is enabled, but usage description is not "
"specified."
msgstr ""
+"Privacidad: el acceso a la biblioteca de fotos está habilitado, pero no se "
+"especifica la descripción de uso."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14669,21 +14740,21 @@ msgid ""
"The rcedit tool must be configured in the Editor Settings (Export > Windows "
"> Rcedit) to change the icon or app information data."
msgstr ""
+"La herramienta rcedit debe configurarse en la configuración del editor "
+"(Exportar > Windows > Rcedit) para cambiar los datos de información del "
+"ícono o la aplicación."
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "Ruta inválida."
+msgstr "Ruta de icono no válida:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "Extensión inválida."
+msgstr "Versión de archivo inválida:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "GUID de producto inválido."
+msgstr "Versión de producto no válida:"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -15429,14 +15500,13 @@ msgid "This node has been deprecated. Use AnimationTree instead."
msgstr "Este nodo ha quedado obsoleto. Usa AnimationTree en su lugar."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Apply color\n"
"RMB: Remove preset"
msgstr ""
"Color: #%s\n"
-"Clic izq: Configurar color\n"
+"Clic izq: Aplicar color\n"
"Clic der: Borrar configuración predeterminada"
#: scene/gui/color_picker.cpp
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 25d0908e26..44d5ce2975 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -3,7 +3,7 @@
# 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.
+# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2018, 2019, 2020, 2021, 2022.
# Roger Blanco Ribera <roger.blancoribera@gmail.com>, 2016-2018.
# Sebastian Silva <sebastian@sugarlabs.org>, 2016.
# Jose Luis Bossio <joseluisbossio@gmail.com>, 2018.
@@ -17,15 +17,15 @@
# Cristian Yepez <cristianyepez@gmail.com>, 2020.
# Skarline <lihue-molina@hotmail.com>, 2020.
# Joakker <joaquinandresleon108@gmail.com>, 2020.
-# M3CG <cgmario1999@gmail.com>, 2021.
+# M3CG <cgmario1999@gmail.com>, 2021, 2022.
# Manuel González <mgoopazo@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-11 06:25+0000\n"
-"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n"
+"PO-Revision-Date: 2022-02-28 13:54+0000\n"
+"Last-Translator: M3CG <cgmario1999@gmail.com>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/"
"godot-engine/godot/es_AR/>\n"
"Language: es_AR\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.10-dev\n"
+"X-Generator: Weblate 4.11.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -337,9 +337,8 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Clave(s)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add RESET Value(s)"
-msgstr "Agregar %d Frame(s)"
+msgstr "Agregar Valor(es) de RESET"
#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
@@ -513,9 +512,8 @@ msgstr ""
"única."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Add RESET Keys"
-msgstr "Escalar Keys de Anim"
+msgstr "Anim: Agregar Claves de RESET"
#: editor/animation_track_editor.cpp
msgid ""
@@ -1499,13 +1497,18 @@ msgstr "Cargar el Bus Layout predeterminado."
msgid "Create a new Bus Layout."
msgstr "Crear un nuevo Bus Layout."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Abrir Layout de Bus de Audio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nombre inválido."
#: editor/editor_autoload_settings.cpp
msgid "Cannot begin with a digit."
-msgstr ""
+msgstr "No puede comenzar con un dígito."
#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
@@ -2137,9 +2140,8 @@ msgid "Properties"
msgstr "Propiedades"
#: editor/editor_help.cpp
-#, fuzzy
msgid "overrides %s:"
-msgstr "reemplazar(override):"
+msgstr "reemplaza(overrides) %s:"
#: editor/editor_help.cpp
msgid "default:"
@@ -2279,18 +2281,18 @@ msgid "Property:"
msgstr "Propiedad:"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Pin value"
-msgstr "(valor)"
+msgstr "Fijar Valor"
#: editor/editor_inspector.cpp
msgid ""
"Pinning a value forces it to be saved even if it's equal to the default."
msgstr ""
+"Fijar un valor fuerza que sea guardado incluso si es igual predeterminado."
#: editor/editor_inspector.cpp
msgid "Pin value [Disabled because '%s' is editor-only]"
-msgstr ""
+msgstr "Fijar Valor [Desactivado porque '%s' es solo para el editor]"
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_func_nodes.cpp
@@ -2305,26 +2307,23 @@ msgstr "Asignar Múltiples:"
#: editor/editor_inspector.cpp
msgid "Pinned %s"
-msgstr ""
+msgstr "Fijado %s"
#: editor/editor_inspector.cpp
msgid "Unpinned %s"
-msgstr ""
+msgstr "Desfijado %s"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Copy Property"
-msgstr "Copiar Propiedades"
+msgstr "Copiar Propiedad"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Paste Property"
-msgstr "Pegar Propiedades"
+msgstr "Pegar Propiedad"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Copy Property Path"
-msgstr "Copiar Ruta de Script"
+msgstr "Copiar Ruta de Propiedad"
#: editor/editor_log.cpp
msgid "Output:"
@@ -2957,7 +2956,7 @@ msgstr "Act./Desact. modo sin distracciones."
msgid "Add a new scene."
msgstr "Agregar nueva escena."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Escena"
@@ -3061,9 +3060,8 @@ msgid "Install Android Build Template..."
msgstr "Instalar Plantilla de Compilación de Android..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open User Data Folder"
-msgstr "Abrir Carpeta de Datos del Editor"
+msgstr "Abrir Carpeta de Datos del Usuario"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
@@ -3152,7 +3150,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Force Shader Fallbacks"
-msgstr ""
+msgstr "Forzar Shader Fallbacks"
#: editor/editor_node.cpp
msgid ""
@@ -3163,6 +3161,13 @@ msgid ""
"Asynchronous shader compilation must be enabled in the project settings for "
"this option to make a difference."
msgstr ""
+"Cuando esta opción está activada, los shaders se utilizarán en su forma de "
+"fallback (ya sea visible a través de un ubershader u oculto) durante todo el "
+"tiempo de ejecución.\n"
+"Esto es útil para verificar el aspecto y el rendimiento de los fallbacks, "
+"que normalmente se muestran brevemente.\n"
+"La compilación asíncrona de los shaders debe estar activada en la "
+"configuración del proyecto para que esta opción suponga una diferencia."
#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
@@ -3326,14 +3331,12 @@ msgid "Update Continuously"
msgstr "Actualizar Continuamente"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Actualizar Al Cambiar"
+msgstr "Actualizar Todos Los Cambios"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Cambios de Material:"
+msgstr "Actualizar Cambios Vitales"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -3782,9 +3785,8 @@ msgstr "Importar Desde Nodo:"
#. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git").
#: editor/editor_vcs_interface.cpp
-#, fuzzy
msgid "%s Error"
-msgstr "Error"
+msgstr "Error de %s"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
@@ -4120,6 +4122,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Esta extensión de archivo no es reconocida por el editor.\n"
+"Si querés renombrarla de todos modos, usá el administrador de archivos de tu "
+"sistema operativo.\n"
+"Después de renombrar a una extensión desconocida, el archivo ya no se "
+"mostrará en el editor."
#: editor/filesystem_dock.cpp
msgid ""
@@ -4342,9 +4349,8 @@ msgid "Replace..."
msgstr "Reemplazar..."
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Replace in Files"
-msgstr "Reemplazar Todo"
+msgstr "eemplazar en Archivos"
#: editor/find_in_files.cpp
msgid "Find: "
@@ -4355,9 +4361,8 @@ msgid "Replace: "
msgstr "Reemplazar: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace All (NO UNDO)"
-msgstr "Reemplazar Todo"
+msgstr "Reemplazar Todo (NO SE PUEDE DESHACER)"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4584,6 +4589,8 @@ msgid ""
"Select a resource file in the filesystem or in the inspector to adjust "
"import settings."
msgstr ""
+"Seleccioná un archivo de recursos en el sistema de archivos o en el "
+"inspector para ajustar la configuración de importación."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
@@ -5741,6 +5748,10 @@ msgid "Bake Lightmaps"
msgstr "Bake Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Selecciona un archivo de lightmap bakeado:"
@@ -6054,9 +6065,8 @@ 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."
+msgstr "Alt+Arrastrar: Escalar el nodo seleccionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
@@ -6090,7 +6100,7 @@ msgstr "Modo de Escalado"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Shift: Scale proportionally."
-msgstr ""
+msgstr "Shift: Escalar proporcionalmente."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6189,9 +6199,8 @@ 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"
+msgstr "Bloquear Nodo(s) Seleccionado(s)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6200,9 +6209,8 @@ 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"
+msgstr "Desbloquear Nodo(s) Seleccionado(s)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6211,9 +6219,8 @@ 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"
+msgstr "Agrupar Nodo(s) Seleccionado(s)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6222,9 +6229,8 @@ 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"
+msgstr "Desagrupar Nodo(s) Seleccionado(s)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
@@ -7873,9 +7879,8 @@ msgid "Find in Files..."
msgstr "Buscar en Archivos..."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Replace in Files..."
-msgstr "Reemplazar..."
+msgstr "Reemplazar en Archivos..."
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
@@ -8236,7 +8241,13 @@ msgid "Cinematic Preview"
msgstr "Vista Previa Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "No disponible usando el renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8403,16 +8414,15 @@ msgstr "Act./Desact. Vista Libre"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Decrease Field of View"
-msgstr ""
+msgstr "Disminuir el Campo de Visión"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Increase Field of View"
-msgstr ""
+msgstr "Incrementar el Campo de Visión"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Reset Field of View to Default"
-msgstr "Restablecer a Valores Por Defecto"
+msgstr "Restablecer el Campo de Visión por Defecto"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -8830,7 +8840,7 @@ msgstr "{num} stylebox(es)"
#: editor/plugins/theme_editor_plugin.cpp
msgid "No styleboxes found."
-msgstr "No se encontraron styleboxes."
+msgstr "No se encontró ninguna caja de estilo."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
@@ -9132,6 +9142,11 @@ msgid "Select Another Theme Resource:"
msgstr "Seleccionar Otro Recurso del Theme:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Renombrar Recurso"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Otro Theme"
@@ -9141,22 +9156,19 @@ msgstr "Añadir Tipo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Filter the list of types or create a new custom type:"
-msgstr ""
+msgstr "Filtrar la lista de tipos o crea un nuevo tipo personalizado:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Available Node-based types:"
-msgstr "Perfiles Disponibles:"
+msgstr "Tipos disponibles basados en nodos:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Type name is empty!"
-msgstr "El nombre del archivo está vacío."
+msgstr "¡El nombre del tipo 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?"
+msgstr "¿Estás seguro/a que querés crear un tipo vacío?"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
@@ -9184,6 +9196,20 @@ msgstr ""
"de este tipo."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Añadir Tipo de Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Editar Tipo de Variable"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Cambiar Tipo Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Valores por Defecto"
@@ -9202,8 +9228,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Cambiar Tipo Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9778,9 +9815,8 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "No VCS plugins are available."
-msgstr "No hay addons de VCS disponibles."
+msgstr "No hay plugins de VCS disponibles."
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Error"
@@ -9790,53 +9826,48 @@ msgstr "Error"
msgid ""
"Remote settings are empty. VCS features that use the network may not work."
msgstr ""
+"La configuración remota está vacía. Las funciones de VCS que utilizan la red "
+"pueden no funcionar."
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "No commit message was provided."
-msgstr "No se indicó ningún nombre."
+msgstr "No se proporcionó ningún mensaje de commit"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit"
msgstr "Commit"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Staged Changes"
-msgstr "Cambios de Shaders:"
+msgstr "Cambios en Staging Area"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Unstaged Changes"
-msgstr "Cambios de Shaders:"
+msgstr "Cambios Fuera de Staging Area"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit:"
-msgstr "Commit"
+msgstr "Commit:"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Date:"
-msgstr ""
+msgstr "Fecha:"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Subtitle:"
-msgstr "Subárbol"
+msgstr "Subtítulo:"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Do you want to remove the %s branch?"
-msgstr ""
+msgstr "¿Quieres eliminar la rama %s?"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Do you want to remove the %s remote?"
-msgstr "¿Estás seguro/a que quieres abrir más de un proyecto?"
+msgstr "¿Quieres eliminar el %s remoto?"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Apply"
-msgstr "Aplicar Reset"
+msgstr "Aplicar"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control System"
@@ -9847,148 +9878,120 @@ msgid "Initialize"
msgstr "Inicializar"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote Login"
-msgstr "Quitar Punto"
+msgstr "Inicio de Sesión Remoto"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Username"
-msgstr "Renombrar"
+msgstr "Nombre de usuario"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Password"
-msgstr ""
+msgstr "Contraseña"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "SSH Public Key Path"
-msgstr ""
+msgstr "Ruta de la clave pública SSH"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Select SSH public key path"
-msgstr ""
+msgstr "Selecciona la ruta de la clave pública SSH"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "SSH Private Key Path"
-msgstr ""
+msgstr "Ruta de la Clave Privada SSH"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Select SSH private key path"
-msgstr ""
+msgstr "elecciona la ruta de la clave privada SSH"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "SSH Passphrase"
-msgstr ""
+msgstr "Contraseña SSH"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Detect new changes"
msgstr "Detectar nuevos cambios"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Discard all changes"
-msgstr "¿Cerrar y guardar cambios?"
+msgstr "Descartar todos los cambios"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Stage all changes"
-msgstr "Guardando cambios locales..."
+msgstr "Pasar todos los cambios al area de staging."
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Unstage all changes"
-msgstr "Cambios de Material:"
+msgstr "Quitar todos los cambios del area de staging"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit Message"
-msgstr "Commitear Cambios"
+msgstr "Mensaje de Commit"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit Changes"
msgstr "Commitear Cambios"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit List"
-msgstr "Commit"
+msgstr "Lista de Commits"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit list size"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
+msgstr "Tamaño de la lista de commits"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Branches"
-msgstr "Coincidencias:"
+msgstr "Branches"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Create New Branch"
-msgstr "Crear Proyecto Nuevo"
+msgstr "Crear un Nuevo Branch"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remove Branch"
-msgstr "Quitar pista de animación"
+msgstr "Eliminar Branch"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branch Name"
-msgstr ""
+msgstr "Nombre del Branch"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remotes"
-msgstr "Remoto"
+msgstr "Remotes"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Create New Remote"
-msgstr "Crear Proyecto Nuevo"
+msgstr "Crear un Nuevo Remote"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remove Remote"
-msgstr "Remover Item"
+msgstr "Eliminar Remote"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote Name"
-msgstr "Remoto "
+msgstr "Nombre del Remote"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote URL"
-msgstr "Remoto "
+msgstr "URL del Remote"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Fetch"
-msgstr ""
+msgstr "Fetch"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Pull"
-msgstr ""
+msgstr "Pull"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Push"
-msgstr ""
+msgstr "Push"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Force Push"
-msgstr "Mesh de Origen:"
+msgstr "Forzar Push"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Modified"
@@ -10008,22 +10011,19 @@ msgstr "Cambio de Tipo"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Unmerged"
-msgstr ""
+msgstr "Sin mergear"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "View:"
-msgstr "Vista"
+msgstr "Vista:"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Split"
-msgstr "Partir Path"
+msgstr "Dividida"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Unified"
-msgstr "Modificado/s"
+msgstr "Unificada"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(GLES3 only)"
@@ -12184,6 +12184,10 @@ msgid ""
"To save this branch into its own scene, open the original scene, right click "
"on this branch, and select \"Save Branch as Scene\"."
msgstr ""
+"No se puede guardar una rama que es hija de una escena ya instanciada.\n"
+"Para guardar esta rama en su propia escena, abrí la escena original, hacé "
+"click con el botón derecho del mouse en esta rama y seleccioná \"Guardar "
+"Rama como Escena\"."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -12191,6 +12195,10 @@ msgid ""
"To save this branch into its own scene, open the original scene, right click "
"on this branch, and select \"Save Branch as Scene\"."
msgstr ""
+"No se puede guardar una rama que forma parte de una escena heredada.\n"
+"Para guardar esta rama en la propia escena, abre la escena original, hacé "
+"clic con el botón derecho en esta rama y seleccioná \"Guardar Rama como "
+"Escena\"."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12696,6 +12704,11 @@ msgid "Stack Frames"
msgstr "Frames del Stack"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrar tiles"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profiler"
@@ -12869,14 +12882,12 @@ msgid "Set Occluder Sphere Position"
msgstr "Establecer Posición de la Esfera de Oclusión"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Polygon Point Position"
-msgstr "Establecer Posición del Portal Point"
+msgstr "Establecer Posición del Polígono Oclusor"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Hole Point Position"
-msgstr "Setear Posición de Punto de Curva"
+msgstr "Establecer Posición del Punto del Agujero Oclusor"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -13591,38 +13602,36 @@ msgid "Edit Member"
msgstr "Editar Miembros"
#: modules/visual_script/visual_script_expression.cpp
-#, fuzzy
msgid "Expression"
-msgstr "Establecer expresión"
+msgstr "Expresión"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Return"
-msgstr ""
+msgstr "Retornar"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "Condition"
-msgstr "animación"
+msgstr "Condición"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "if (cond) is:"
-msgstr ""
+msgstr "if (cond) is:"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "While"
-msgstr ""
+msgstr "Mientras"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "while (cond):"
-msgstr ""
+msgstr "while (cond):"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Iterador"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "for (elem) in (input):"
-msgstr ""
+msgstr "for (elem) in (input):"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
@@ -13638,79 +13647,71 @@ msgstr "El iterador se volvió inválido: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Secuencia"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "in order:"
-msgstr "Renombrar carpeta:"
+msgstr "en orden:"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "Switch"
-msgstr "Cabeceo:"
+msgstr "Switch"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "'input' is:"
-msgstr ""
+msgstr "'input' is:"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "Type Cast"
-msgstr "Tipos:"
+msgstr "Casteo de Tipo"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Is %s?"
-msgstr ""
+msgstr "¿Es %s?"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "On %s"
-msgstr ""
+msgstr "On %s"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "On Self"
-msgstr "Propio"
+msgstr "On Self"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Subtract %s"
-msgstr "En el carácter %s"
+msgstr "Restar %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Multiply %s"
-msgstr ""
+msgstr "Multiplicar %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Divide %s"
-msgstr ""
+msgstr "Dividir %s"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Mod %s"
-msgstr "Agregar %s"
+msgstr "Mod %s"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "ShiftLeft %s"
-msgstr "Asignar %s"
+msgstr "ShiftLeft %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "ShiftRight %s"
-msgstr ""
+msgstr "ShiftRight %s"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "BitAnd %s"
-msgstr "Agregar %s"
+msgstr "BitAnd %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "BitOr %s"
-msgstr ""
+msgstr "BitOr %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "BitXor %s"
-msgstr ""
+msgstr "BitXor %s"
#: modules/visual_script/visual_script_func_nodes.cpp
#: modules/visual_script/visual_script_nodes.cpp
@@ -13735,19 +13736,16 @@ msgid "Invalid index property name '%s' in node %s."
msgstr "Nombre de propiedad índice '%s' inválido en nodo %s."
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Emit %s"
-msgstr "Asignar %s"
+msgstr "Emitir %s"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Function"
-msgstr "Funciones"
+msgstr "Función"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Compose Array"
-msgstr "Redimensionar Array"
+msgstr "Componer Array"
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -13759,7 +13757,7 @@ msgstr ": Argumentos inválidos: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "a if cond, else b"
-msgstr ""
+msgstr "a if cond, else b"
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
@@ -13770,64 +13768,52 @@ msgid "VariableSet not found in script: "
msgstr "VariableSet no encontrado en el script: "
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Preload"
-msgstr "Volver a Cargar"
+msgstr "Preload"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Index"
-msgstr "Z Index"
+msgstr "Obtener Índice"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Set Index"
-msgstr "Z Index"
+msgstr "Establecer Índice"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Global Constant"
-msgstr "Constante"
+msgstr "Constante Global"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Class Constant"
-msgstr "Constante"
+msgstr "Constante Global"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Basic Constant"
-msgstr "Constante"
+msgstr "Constante Básica"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Math Constant"
-msgstr "Constante"
+msgstr "Constante Matemática"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Engine Singleton"
-msgstr "Activar Singleton GDNative"
+msgstr "Obtener Engine Singleton"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Scene Node"
-msgstr "Nodo TimeSeek"
+msgstr "Obtener Nodo de Escena"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Scene Tree"
-msgstr "Edición de Árbol de Escenas"
+msgstr "Obtener Árbol de Escenas"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Self"
-msgstr "Propio"
+msgstr "Obtener Self"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "CustomNode"
-msgstr "Cortar Nodos"
+msgstr "CustomNode"
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
@@ -13844,33 +13830,28 @@ msgstr ""
"(error)."
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "SubCall"
-msgstr "Llamadas"
+msgstr "SubCall"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Construct %s"
-msgstr "Constantes"
+msgstr "Construir %s"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Local Var"
-msgstr "Usar Espacio Local"
+msgstr "Obtener Var local"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Set Local Var"
-msgstr "Usar Espacio Local"
+msgstr "Establecer Var Local"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Action %s"
-msgstr "Acción"
+msgstr "Acción %s"
#: modules/visual_script/visual_script_nodes.cpp
msgid "Deconstruct %s"
-msgstr ""
+msgstr "Deconstruir %s"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search VisualScript"
@@ -13878,40 +13859,35 @@ msgstr "Buscar en VisualScript"
#: modules/visual_script/visual_script_yield_nodes.cpp
msgid "Yield"
-msgstr ""
+msgstr "Yield"
#: modules/visual_script/visual_script_yield_nodes.cpp
msgid "Wait"
-msgstr ""
+msgstr "Esperar"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "Next Frame"
-msgstr "Mover Fotograma"
+msgstr "Siguiente Fotograma"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "Next Physics Frame"
msgstr "Frames de Física %"
#: modules/visual_script/visual_script_yield_nodes.cpp
msgid "%s sec(s)"
-msgstr ""
+msgstr "%s seg(s)"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "WaitSignal"
-msgstr "Señal"
+msgstr "WaitSignal"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "WaitNodeSignal"
-msgstr "Señal"
+msgstr "WaitNodeSignal"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "WaitInstanceSignal"
-msgstr "Instancia"
+msgstr "WaitInstanceSignal"
#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
@@ -14055,9 +14031,10 @@ msgstr "Nombre de paquete inválido:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"El módulo \"GodotPaymentV3\" incluido en el ajuste de proyecto \"android/"
-"modules\" es inválido (cambiado en Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14324,166 +14301,167 @@ msgstr "Error al iniciar el servidor HTTP:"
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "No se puede obtener acceso al sistema de archivos."
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "No se pudo obtener el hash de Info.plist."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "Nombre de proyecto Inválido."
+msgstr "Info.plist no válido, sin nombre de exe."
#: platform/osx/export/codesign.cpp
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "Info.plist no válido, sin ID de paquete."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "Geometría inválida, no es posible crear un polígono."
+msgstr "Info.plist no válido, no se puede cargar."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "No se pudo crear la carpeta."
+msgstr "No se pudo crear la subcarpeta \"%s\"."
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
-msgstr ""
+msgstr "No se pudo extraer el binario delgado."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Ruta base inválida."
+msgstr "Formato binario no válido."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "Ya está firmado!"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to process nested resources."
-msgstr "Fallo al cargar recurso."
+msgstr "No se pudieron procesar los recursos anidados."
#: platform/osx/export/codesign.cpp
msgid "Failed to create _CodeSignature subfolder."
-msgstr ""
+msgstr "No se pudo crear la subcarpeta _CodeSignature."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to get CodeResources hash."
-msgstr "Fallo al cargar recurso."
+msgstr "No se pudo obtener el hash de CodeResources."
#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid entitlements file."
-msgstr "Extensión inválida."
+msgstr "Archivo de entitlements no válido."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "Extensión inválida."
+msgstr "Archivo ejecutable no válido."
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
-msgstr ""
+msgstr "No se puede cambiar el tamaño del comando de carga de la firma."
#: platform/osx/export/codesign.cpp
msgid "Failed to create fat binary."
-msgstr ""
+msgstr "No se pudo crear el binario gordo."
#: platform/osx/export/codesign.cpp
msgid "Unknown bundle type."
-msgstr ""
+msgstr "Tipo de paquete desconocido."
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "Tipo de objeto desconocido."
#: platform/osx/export/export.cpp
msgid ""
"Note: The notarization process generally takes less than an hour. When the "
"process is completed, you'll receive an email."
msgstr ""
+"Nota: El proceso de notarización generalmente toma menos de una hora. Cuando "
+"se complete el proceso, recibirás un correo electrónico."
#: platform/osx/export/export.cpp
msgid ""
"You can check progress manually by opening a Terminal and running the "
"following command:"
msgstr ""
+"Podés verificar el progreso manualmente abriendo una Terminal y ejecutando "
+"el siguiente comando:"
#: platform/osx/export/export.cpp
msgid ""
"Run the following command to staple the notarization ticket to the exported "
"application (optional):"
msgstr ""
+"Ejecutá el siguiente comando para engrapar el boleto de certificación "
+"notarial a la aplicación exportada (opcional):"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "No se encontraron íconos."
+msgstr "No se encontró identidad."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Creating app bundle"
-msgstr "Creando Miniatura"
+msgstr "Crearndo paquete de aplicaciones"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"No se pudo encontrar la plantilla APK para exportar:\n"
-"%s"
+msgstr "No se pudo encontrar la aplicación de plantilla para exportar:"
#: platform/osx/export/export.cpp
msgid ""
"Relative symlinks are not supported on this OS, the exported project might "
"be broken!"
msgstr ""
+"Los enlaces simbólicos relativos no son compatibles con este sistema "
+"operativo, ¡el proyecto exportado podría estar dañado!"
#: platform/osx/export/export.cpp
msgid ""
"Requested template binary '%s' not found. It might be missing from your "
"template archive."
msgstr ""
+"Plantilla binaria solicitada '%s' no encontrada. Es posible que falte en el "
+"archivo de plantillas."
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "Creando PKG"
#: platform/osx/export/export.cpp
msgid ""
"Ad-hoc signed applications require the 'Disable Library Validation' "
"entitlement to load dynamic libraries."
msgstr ""
+"Las aplicaciones firmadas ad-hoc requieren el entitlement 'Disable Library "
+"Validation' para cargar bibliotecas dinámicas."
#: platform/osx/export/export.cpp
msgid "Code signing bundle"
-msgstr ""
+msgstr "Firmando código del paquete"
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "Creando DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
-msgstr ""
+msgstr "Firmando código de DMG"
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "Creando ZIP"
#: platform/osx/export/export.cpp
msgid ""
"Notarization requires the app to be archived first, select the DMG or ZIP "
"export format instead."
msgstr ""
+"La notarización requiere que la aplicación se archive primero, seleccioná el "
+"formato de exportación DMG o ZIP en su lugar."
#: platform/osx/export/export.cpp
msgid "Sending archive for notarization"
-msgstr ""
+msgstr "Enviando archivo para notarización"
#: platform/osx/export/export.cpp
msgid "Invalid bundle identifier:"
@@ -14494,31 +14472,37 @@ msgid ""
"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
"signing is limited to ad-hoc signature only."
msgstr ""
+"Advertencia: El \"codesign\" incorporado está seleccionado en la "
+"configuración del editor. La firma de código se limita únicamente a la firma "
+"ad-hoc."
#: platform/osx/export/export.cpp
msgid ""
"Warning: Xcode command line tools are not installed, using built-in "
"\"codesign\". Code signing is limited to ad-hoc signature only."
msgstr ""
+"Advertencia: las herramientas de línea de comandos de Xcode no están "
+"instaladas, utilizando el \"codesign\" incorporado. La firma de código se "
+"limita únicamente a la firma ad-hoc."
#: platform/osx/export/export.cpp
msgid "Notarization: Notarization with an ad-hoc signature is not supported."
msgstr ""
+"Notarización: No se admite la certificación notarial con una firma ad-hoc."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Code signing is required for notarization."
-msgstr "Notarización: se requiere firma de código."
+msgstr "Notarización: Se requiere la firma del código para la notarización."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Hardened runtime is required for notarization."
-msgstr "Notarización: se requiere hardened runtime."
+msgstr ""
+"Notarización: se requiere hardened runtime para la certificación notarial."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Timestamp runtime is required for notarization."
-msgstr "Notarización: se requiere hardened runtime."
+msgstr ""
+"Notarización: Se requienre Timestamp runtime para la certificación notarial."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
@@ -14533,57 +14517,75 @@ msgid ""
"Warning: Notarization is disabled. The exported project will be blocked by "
"Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Advertencia: La notarización está deshabilitada. Gatekeeper bloqueará el "
+"proyecto exportado si se descarga de una fuente desconocida."
#: platform/osx/export/export.cpp
msgid ""
"Code signing is disabled. The exported project will not run on Macs with "
"enabled Gatekeeper and Apple Silicon powered Macs."
msgstr ""
+"La firma de código está deshabilitada. El proyecto exportado no se ejecutará "
+"en Mac con Gatekeeper habilitado y Mac con tecnología Apple Silicon."
#: platform/osx/export/export.cpp
msgid ""
"Hardened Runtime is not compatible with ad-hoc signature, and will be "
"disabled!"
msgstr ""
+"Hardened Runtime no es compatible con la firma ad-hoc y se desactivará!"
#: platform/osx/export/export.cpp
msgid ""
"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
-msgstr ""
+msgstr "Timestamping no es compatible con la firma ad-hoc y se desactivará!"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Notarization is not supported from this OS. The exported project "
"will be blocked by Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Advertencia: la notarización no es compatible con este sistema operativo. "
+"Gatekeeper bloqueará el proyecto exportado si se descarga de una fuente "
+"desconocida."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
msgstr ""
+"Privacidad: el acceso al micrófono está habilitado, pero no se especifica la "
+"descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
msgstr ""
+"Privacidad: el acceso a la cámara está habilitado, pero no se especifica la "
+"descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
msgstr ""
+"Privacidad: el acceso a la información de ubicación está habilitado, pero no "
+"se especifica la descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
msgstr ""
+"Privacidad: el acceso a la libreta de direcciones está habilitado, pero no "
+"se especifica la descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
msgstr ""
+"Privacidad: el acceso al calendario está habilitado, pero no se especifica "
+"la descripción de uso."
#: platform/osx/export/export.cpp
msgid ""
@@ -14661,19 +14663,16 @@ msgid ""
msgstr ""
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "Ruta inválida."
+msgstr "Ruta de icono no válida:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "Extensión inválida."
+msgstr "Versión de archivo inválida:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "GUID de producto inválido."
+msgstr "versión de producto inválida."
#: scene/2d/animated_sprite.cpp
msgid ""
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 9b70c32d20..6684f4bbb6 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -1456,6 +1456,11 @@ msgstr "Lae vaikimise siini paigutus."
msgid "Create a new Bus Layout."
msgstr "Loo uus siini paigutus."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Ava heliliinide paigutus"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Vigane nimi."
@@ -2859,7 +2864,7 @@ msgstr ""
msgid "Add a new scene."
msgstr "Lisa uus stseen."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Stseen"
@@ -5531,6 +5536,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7986,7 +7995,12 @@ msgid "Cinematic Preview"
msgstr "Kinemaatiline eelvaade"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8893,6 +8907,11 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Ressurss"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8941,6 +8960,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Laadi vaikimisi"
@@ -8959,7 +8990,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Muuda tüüpi"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9650,18 +9692,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Vasted:"
@@ -12245,6 +12275,11 @@ msgid "Stack Frames"
msgstr "Virnakaadrid"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtreeri sõlmed"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profileerija"
@@ -13557,6 +13592,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index 2918926ac7..d315bb8d1c 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -1464,6 +1464,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2828,7 +2832,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5505,6 +5509,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Hautatu txantiloi fitxategia"
@@ -7944,7 +7952,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8848,6 +8861,11 @@ msgstr "Bilatu ordezko baliabidea:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Baliabidea"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Inportatu azala"
@@ -8897,6 +8915,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Inportatu profila(k)"
@@ -8915,7 +8945,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Kide mota"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9600,18 +9641,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12190,6 +12219,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13494,6 +13527,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/extract.py b/editor/translations/extract.py
index 2594629e5c..65d1341e9e 100755
--- a/editor/translations/extract.py
+++ b/editor/translations/extract.py
@@ -2,6 +2,7 @@
import fnmatch
import os
+import re
import shutil
import subprocess
import sys
@@ -31,6 +32,15 @@ for root, dirnames, filenames in os.walk("."):
matches.sort()
+remaps = {}
+remap_re = re.compile(r'capitalize_string_remaps\["(.+)"\] = "(.+)";')
+with open("editor/editor_property_name_processor.cpp") as f:
+ for line in f:
+ m = remap_re.search(line)
+ if m:
+ remaps[m.group(1)] = m.group(2)
+
+
unique_str = []
unique_loc = {}
ctx_group = {} # Store msgctx, msg, and locations.
@@ -53,6 +63,43 @@ msgstr ""
"""
+# Regex "(?P<name>(?:[^"\\]|\\.)*)" creates a group named `name` that matches a string.
+message_patterns = {
+ re.compile(r'RTR\("(?P<message>(?:[^"\\]|\\.)*)"(?:, "(?P<context>(?:[^"\\]|\\.)*)")?\)'): False,
+ re.compile(r'TTR\("(?P<message>(?:[^"\\]|\\.)*)"(?:, "(?P<context>(?:[^"\\]|\\.)*)")?\)'): False,
+ re.compile(r'TTRC\("(?P<message>(?:[^"\\]|\\.)*)"\)'): False,
+ re.compile(
+ r'TTRN\("(?P<message>(?:[^"\\]|\\.)*)", "(?P<plural_message>(?:[^"\\]|\\.)*)",[^,)]+?(?:, "(?P<context>(?:[^"\\]|\\.)*)")?\)'
+ ): False,
+ re.compile(
+ r'RTRN\("(?P<message>(?:[^"\\]|\\.)*)", "(?P<plural_message>(?:[^"\\]|\\.)*)",[^,)]+?(?:, "(?P<context>(?:[^"\\]|\\.)*)")?\)'
+ ): False,
+ re.compile(r'_initial_set\("(?P<message>[^"]+?)",'): True,
+ re.compile(r'GLOBAL_DEF(?:_RST)?\("(?P<message>[^".]+?)",'): True,
+ re.compile(r'EDITOR_DEF(?:_RST)?\("(?P<message>[^"]+?)",'): True,
+ re.compile(r'ADD_PROPERTY\(PropertyInfo\(Variant::[A-Z]+,\s*"(?P<message>[^"]+?)",'): True,
+ re.compile(r'ADD_GROUP\("(?P<message>[^"]+?)",'): False,
+}
+
+
+# See String::camelcase_to_underscore().
+capitalize_re = re.compile(r"(?<=\D)(?=\d)|(?<=\d)(?=\D([a-z]|\d))")
+
+
+def _process_editor_string(name):
+ # See String::capitalize().
+ # fmt: off
+ capitalized = " ".join(
+ part.title()
+ for part in capitalize_re.sub("_", name).replace("_", " ").split()
+ )
+ # fmt: on
+ # See EditorStringProcessor::process_string().
+ for key, value in remaps.items():
+ capitalized = capitalized.replace(key, value)
+ return capitalized
+
+
def _write_message(msgctx, msg, msg_plural, location):
global main_po
main_po += "#: " + location + "\n"
@@ -180,11 +227,6 @@ def _extract_translator_comment(line, is_block_translator_comment):
def process_file(f, fname):
-
- global main_po, unique_str, unique_loc
-
- patterns = ['RTR("', 'TTR("', 'TTRC("', 'TTRN("', 'RTRN("']
-
l = f.readline()
lc = 1
reading_translator_comment = False
@@ -207,86 +249,58 @@ def process_file(f, fname):
if not reading_translator_comment:
translator_comment = translator_comment[:-1] # Remove extra \n at the end.
- idx = 0
- pos = 0
-
- while not reading_translator_comment and pos >= 0:
- # Loop until a pattern is found. If not, next line.
- pos = l.find(patterns[idx], pos)
- if pos == -1:
- if idx < len(patterns) - 1:
- idx += 1
- pos = 0
- continue
- pos += len(patterns[idx])
-
- # Read msg until "
- msg = ""
- while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"):
- msg += l[pos]
- pos += 1
-
- # Read plural.
- msg_plural = ""
- if patterns[idx] in ['TTRN("', 'RTRN("']:
- pos = l.find('"', pos + 1)
- pos += 1
- while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"):
- msg_plural += l[pos]
- pos += 1
-
- # Read context.
- msgctx = ""
- pos += 1
- read_ctx = False
- while pos < len(l):
- if l[pos] == ")":
- break
- elif l[pos] == '"':
- read_ctx = True
- break
- pos += 1
-
- pos += 1
- if read_ctx:
- while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"):
- msgctx += l[pos]
- pos += 1
-
- # File location.
- location = os.path.relpath(fname).replace("\\", "/")
- if line_nb:
- location += ":" + str(lc)
-
- # Write translator comment.
- _write_translator_comment(msgctx, msg, translator_comment)
+ if not reading_translator_comment:
+ for pattern, is_property_path in message_patterns.items():
+ for m in pattern.finditer(l):
+ location = os.path.relpath(fname).replace("\\", "/")
+ if line_nb:
+ location += ":" + str(lc)
+
+ groups = m.groupdict("")
+ msg = groups.get("message", "")
+ msg_plural = groups.get("plural_message", "")
+ msgctx = groups.get("context", "")
+
+ if is_property_path:
+ for part in msg.split("/"):
+ _add_message(_process_editor_string(part), msg_plural, msgctx, location, translator_comment)
+ else:
+ _add_message(msg, msg_plural, msgctx, location, translator_comment)
translator_comment = ""
- if msgctx != "":
- # If it's a new context or a new message within an existing context, then write new msgid.
- # Else add location to existing msgid.
- if not msgctx in ctx_group:
- _write_message(msgctx, msg, msg_plural, location)
- ctx_group[msgctx] = {msg: [location]}
- elif not msg in ctx_group[msgctx]:
- _write_message(msgctx, msg, msg_plural, location)
- ctx_group[msgctx][msg] = [location]
- elif not location in ctx_group[msgctx][msg]:
- _add_additional_location(msgctx, msg, location)
- ctx_group[msgctx][msg].append(location)
- else:
- if not msg in unique_str:
- _write_message(msgctx, msg, msg_plural, location)
- unique_str.append(msg)
- unique_loc[msg] = [location]
- elif not location in unique_loc[msg]:
- _add_additional_location(msgctx, msg, location)
- unique_loc[msg].append(location)
-
l = f.readline()
lc += 1
+def _add_message(msg, msg_plural, msgctx, location, translator_comment):
+ global main_po, unique_str, unique_loc
+
+ # Write translator comment.
+ _write_translator_comment(msgctx, msg, translator_comment)
+ translator_comment = ""
+
+ if msgctx != "":
+ # If it's a new context or a new message within an existing context, then write new msgid.
+ # Else add location to existing msgid.
+ if not msgctx in ctx_group:
+ _write_message(msgctx, msg, msg_plural, location)
+ ctx_group[msgctx] = {msg: [location]}
+ elif not msg in ctx_group[msgctx]:
+ _write_message(msgctx, msg, msg_plural, location)
+ ctx_group[msgctx][msg] = [location]
+ elif not location in ctx_group[msgctx][msg]:
+ _add_additional_location(msgctx, msg, location)
+ ctx_group[msgctx][msg].append(location)
+ else:
+ if not msg in unique_str:
+ _write_message(msgctx, msg, msg_plural, location)
+ unique_str.append(msg)
+ unique_loc[msg] = [location]
+ elif not location in unique_loc[msg]:
+ _add_additional_location(msgctx, msg, location)
+ unique_loc[msg].append(location)
+
+
print("Updating the editor.pot template...")
for fname in matches:
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index e75b0277a6..d1c2a87acc 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -1492,6 +1492,11 @@ msgstr "طرح پیش فرض اتوبوس را بارگیری کنید."
msgid "Create a new Bus Layout."
msgstr "طرح جدید اتوبوس ایجاد کنید."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "چیدمان اتوبوس صوتی را باز کنید"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "نام نامعتبر."
@@ -2870,7 +2875,7 @@ msgstr ""
msgid "Add a new scene."
msgstr "افزودن صحنه جدید."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "صحنه"
@@ -5698,6 +5703,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "انتخاب پرونده قالب"
@@ -8286,7 +8295,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9249,6 +9263,11 @@ msgstr "منبع جایگزینی را جستجو کن:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "تغییر نام منبع"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "عضوها"
@@ -9302,6 +9321,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "افزودن مورد"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "متغیر را ویرایش کن:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "تغییر نوع پایه"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "بارگیری پیش فرض"
@@ -9319,8 +9353,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "افزودن مورد"
+msgid "Base Type"
+msgstr "تغییر نوع پایه"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -10076,18 +10120,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "تطبیق‌ها:"
@@ -12807,6 +12839,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "صافی کردن گره‌ها"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14206,6 +14243,9 @@ msgstr "نام نامعتبر."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index bd2dd36308..a1d3ed6b5a 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -17,7 +17,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: 2022-02-04 13:45+0000\n"
+"PO-Revision-Date: 2022-02-16 16:36+0000\n"
"Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -1480,6 +1480,11 @@ msgstr "Lataa väylän oletusasettelu."
msgid "Create a new Bus Layout."
msgstr "Luo uusi ääniväylän asettelu."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Avaa ääniväylän asettelu"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Virheellinen nimi."
@@ -2919,7 +2924,7 @@ msgstr "Käytä häiriötöntä tilaa."
msgid "Add a new scene."
msgstr "Lisää uusi skene."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Skene"
@@ -3293,14 +3298,12 @@ msgid "Update Continuously"
msgstr "Päivitä jatkuvasti"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Päivitä kun muuttuu"
+msgstr "Päivitä kaikki muutokset"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Materiaalimuutokset:"
+msgstr "Päivitä olennaiset muutokset"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4075,6 +4078,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Editori ei tunnista tätä tiedostopäätettä.\n"
+"Jos haluat nimetä tiedoston uudelleen joka tapauksessa, tee se "
+"käyttöjärjestelmäsi tiedostonhallintaa käyttäen.\n"
+"Sen jälkeen, kun tiedosto on nimetty tuntemattomalla päätteellä, sitä ei "
+"enää näytetä editorissa."
#: editor/filesystem_dock.cpp
msgid ""
@@ -5693,6 +5701,10 @@ msgid "Bake Lightmaps"
msgstr "Kehitä Lightmapit"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Valitse lightmapin kehitystiedosto:"
@@ -8179,7 +8191,13 @@ msgid "Cinematic Preview"
msgstr "Elokuvallinen esikatselu"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Ei käytettävissä GLES2-renderöijää käytettäessä."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9073,6 +9091,11 @@ msgid "Select Another Theme Resource:"
msgstr "Valitse toinen teemaresurssi:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Nimeä resurssi uudelleen"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Toinen teema"
@@ -9121,6 +9144,20 @@ msgstr ""
"päivittää kaikkien muiden tämän tyyppisten tyylilaatikoiden ominaisuuksia."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Lisää osan tyyppi"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Aseta muuttujan tyyppi"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Muuta kantatyyppiä"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Näytä oletus"
@@ -9137,8 +9174,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Muuta kantatyyppiä"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9844,18 +9892,6 @@ msgid "Commit list size"
msgstr "Vahvistuslistan koko"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Haarat"
@@ -12599,6 +12635,11 @@ msgid "Stack Frames"
msgstr "Pinokehykset"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Suodata laattoja"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profiloija"
@@ -12772,14 +12813,12 @@ msgid "Set Occluder Sphere Position"
msgstr "Aseta peittopallon sijainti"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Polygon Point Position"
-msgstr "Aseta portaalin pisteen sijainti"
+msgstr "Aseta peittopolygonin pisteen sijainti"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Hole Point Position"
-msgstr "Aseta käyräpisteen sijainti"
+msgstr "Aseta peittoreiän pisteen sijainti"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -13916,9 +13955,10 @@ msgstr "Virheellinen paketin nimi:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"\"android/modules\" projektiasetukseen on liitetty virheellinen "
-"\"GodotPaymentV3\" moduuli (muuttunut Godotin versiossa 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14187,166 +14227,167 @@ msgstr "Virhe käynnistettäessä HTTP-palvelinta:"
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "Ei saada pääsyä tiedostojärjestelmään."
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "Info.plist hajautusarvoa ei saada."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "Virheellinen projektin nimi."
+msgstr "Virheellinen Info.plist, exe-nimi puuttuu."
#: platform/osx/export/codesign.cpp
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "Virheellinen Info.plist, bundle id puuttuu."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "Virheellinen geometria, ei voida luoda polygonia."
+msgstr "Virheellinen Info.plist, ei voida ladata."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "Kansiota ei voitu luoda."
+msgstr "Alikansion \"%s\" luonti epäonnistui."
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
-msgstr ""
+msgstr "Binäärin ohennus epäonnistui."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Virheellinen kantapolku."
+msgstr "Virheellinen binäärimuoto."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "Jo allekirjoitettu!"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to process nested resources."
-msgstr "Resurssin lataaminen epäonnistui."
+msgstr "Sisäkkäisten resurssien käsittely epäonnistui."
#: platform/osx/export/codesign.cpp
msgid "Failed to create _CodeSignature subfolder."
-msgstr ""
+msgstr "_CodeSignature alikansion luonti epäonnistui."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to get CodeResources hash."
-msgstr "Resurssin lataaminen epäonnistui."
+msgstr "CodeResources hajautusarvon saanti epäonnistui."
#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid entitlements file."
-msgstr "Virheellinen tiedostopääte."
+msgstr "Virheellinen oikeutustiedosto (entitlements)."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "Virheellinen tiedostopääte."
+msgstr "Virheellinen käynnistystiedosto."
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
-msgstr ""
+msgstr "Ei voida muuttaa allekirjoituksen latauskäskyn kokoa."
#: platform/osx/export/codesign.cpp
msgid "Failed to create fat binary."
-msgstr ""
+msgstr "Laajennetun binäärin luonti epäonnistui."
#: platform/osx/export/codesign.cpp
msgid "Unknown bundle type."
-msgstr ""
+msgstr "Tuntematon bundle-tyyppi."
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "Tuntematon objektityyppi."
#: platform/osx/export/export.cpp
msgid ""
"Note: The notarization process generally takes less than an hour. When the "
"process is completed, you'll receive an email."
msgstr ""
+"Huom: Notarisointiprosessi kestää yleensä alle tunnin. Kun käsittely on "
+"valmis, saat sähköpostin."
#: platform/osx/export/export.cpp
msgid ""
"You can check progress manually by opening a Terminal and running the "
"following command:"
msgstr ""
+"Voit tarkistaa edistymisen manuaalisesti avaamalla Terminaalin ja "
+"suorittamalla seuraavan komennon:"
#: platform/osx/export/export.cpp
msgid ""
"Run the following command to staple the notarization ticket to the exported "
"application (optional):"
msgstr ""
+"Suorita seuraava komento nitoaksesi notarisointilipukkeen vietyyn "
+"sovellukseen (vapaavalintainen):"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "Kuvakkeita ei löytynyt."
+msgstr "Identiteettiä ei löytynyt."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Creating app bundle"
-msgstr "Luodaan pienoiskuvaa"
+msgstr "Luodaan app bundlea"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"Ei löydetty APK-vientimallia vientiä varten:\n"
-"%s"
+msgstr "Ei löydetty app-vientimallia vientiä varten:"
#: platform/osx/export/export.cpp
msgid ""
"Relative symlinks are not supported on this OS, the exported project might "
"be broken!"
msgstr ""
+"Suhteelliset symboliset linkit eivät ole tuettuja tässä "
+"käyttöjärjestelmässä, viety projekti saattaa olla rikkinäinen!"
#: platform/osx/export/export.cpp
msgid ""
"Requested template binary '%s' not found. It might be missing from your "
"template archive."
msgstr ""
+"Pyydettyä binäärivientimallia '%s' ei löydy. Se saattaa puuttua "
+"vientimalliesi arkistosta."
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "Tehdään PKG"
#: platform/osx/export/export.cpp
msgid ""
"Ad-hoc signed applications require the 'Disable Library Validation' "
"entitlement to load dynamic libraries."
msgstr ""
+"Ad-hoc allekirjoitetut sovellukset tarvitsevat 'Disable Library Validation' "
+"oikeutuksen ladatakseen dynaamisia kirjastoja."
#: platform/osx/export/export.cpp
msgid "Code signing bundle"
-msgstr ""
+msgstr "Allekirjoitetaan bundle-koodi"
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "Tehdään DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
-msgstr ""
+msgstr "Allekirjoitetaan DMG-koodi"
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "Tehdään ZIP"
#: platform/osx/export/export.cpp
msgid ""
"Notarization requires the app to be archived first, select the DMG or ZIP "
"export format instead."
msgstr ""
+"Notarisointi edellyttää, että sovellus on ensin pakattu; valitse sen sijaan "
+"DMG- tai ZIP-vientimuoto."
#: platform/osx/export/export.cpp
msgid "Sending archive for notarization"
-msgstr ""
+msgstr "Lähetetään tiedostopaketti notarisointia varten"
#: platform/osx/export/export.cpp
msgid "Invalid bundle identifier:"
@@ -14357,31 +14398,33 @@ msgid ""
"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
"signing is limited to ad-hoc signature only."
msgstr ""
+"Varoitus: Editorin asetuksissa on valittuna sisäänrakennettu \"codesign\". "
+"Koodin allekirjoitus on rajoitettu vain ad-hoc allekirjoituksiin."
#: platform/osx/export/export.cpp
msgid ""
"Warning: Xcode command line tools are not installed, using built-in "
"\"codesign\". Code signing is limited to ad-hoc signature only."
msgstr ""
+"Varoitus: Xcode-komentorivityökaluja ei ole asennettu, käytetään "
+"sisäänrakennettua \"codesign\"-työkalua. Koodin allekirjoitus on rajoitettu "
+"vain ad-hoc allekirjoituksiin."
#: platform/osx/export/export.cpp
msgid "Notarization: Notarization with an ad-hoc signature is not supported."
-msgstr ""
+msgstr "Notarisointi: notarisointi ad-hoc allekirjoituksella ei ole tuettua."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Code signing is required for notarization."
-msgstr "Notarisointi: koodin allekirjoitus tarvitaan."
+msgstr "Notarisointi: koodin allekirjoitus tarvitaan notarisointia varten."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Hardened runtime is required for notarization."
-msgstr "Notarisointi: hardened runtime tarvitaan."
+msgstr "Notarisointi: hardened runtime tarvitaan notarisointia varten."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Timestamp runtime is required for notarization."
-msgstr "Notarisointi: hardened runtime tarvitaan."
+msgstr "Notarisointi: timestamp runtime tarvitaan notarisointia varten."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
@@ -14396,63 +14439,86 @@ msgid ""
"Warning: Notarization is disabled. The exported project will be blocked by "
"Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Varoitus: notarisointi on pois päältä. Gatekeeper estää viedyn projektin "
+"käytön, jos se on ladattu tuntemattomasta lähteestä."
#: platform/osx/export/export.cpp
msgid ""
"Code signing is disabled. The exported project will not run on Macs with "
"enabled Gatekeeper and Apple Silicon powered Macs."
msgstr ""
+"Koodin allekirjoitus on pois päältä. Viedyt projektit eivät toimi Maceillä, "
+"joissa on Gatekeeper päällä, eivätkä Apple Silicon suorittimia käyttävillä "
+"Maceillä."
#: platform/osx/export/export.cpp
msgid ""
"Hardened Runtime is not compatible with ad-hoc signature, and will be "
"disabled!"
msgstr ""
+"Hardened Runtime ei ole yhteensopiva ad-hoc allekirjoituksen kanssa ja "
+"kytketään pois päältä!"
#: platform/osx/export/export.cpp
msgid ""
"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
msgstr ""
+"Timestamping ei ole yhteensopiva ad-hoc allekirjoituksen kanssa ja kytketään "
+"pois päältä!"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Notarization is not supported from this OS. The exported project "
"will be blocked by Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Varoitus: notarisointi ei ole tuettu tästä käyttöjärjestelmästä. Gatekeeper "
+"estää viedyn projektin käytön, jos se on ladattu tuntemattomasta lähteestä."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
msgstr ""
+"Yksityisyys: mikrofonin käyttö on sallittu, mutta käyttökuvausta ei ole "
+"määritelty."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
msgstr ""
+"Yksityisyys: kameran käyttö on sallittu, mutta käyttökuvausta ei ole "
+"määritelty."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
msgstr ""
+"Yksityisyys: sijaintitiedon käyttö on sallittu, mutta käyttökuvausta ei ole "
+"määritelty."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
msgstr ""
+"Yksityisyys: osoitekirjan käyttö on sallittu, mutta käyttökuvausta ei ole "
+"määritelty."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
msgstr ""
+"Yksityisyys: kalenterin käyttö on sallittu, mutta käyttökuvausta ei ole "
+"määritelty."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Photo library access is enabled, but usage description is not "
"specified."
msgstr ""
+"Yksityisyys: kuvakirjaston käyttö on sallittu, mutta käyttökuvausta ei ole "
+"määritelty."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14513,21 +14579,20 @@ msgid ""
"The rcedit tool must be configured in the Editor Settings (Export > Windows "
"> Rcedit) to change the icon or app information data."
msgstr ""
+"rcedit-työkalu täytyy olla konfiguroituna editorin asetuksissa (Export > "
+"Windows > Rcedit) ikonin tai sovelluksen tietojen muuttamiseksi."
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "Virheellinen polku."
+msgstr "Virheellinen ikonin polku:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "Virheellinen tiedostopääte."
+msgstr "Virheellinen tiedoston versio:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "Tuotteen GUID (yleisesti yksilöllinen tunniste) on virheellinen."
+msgstr "Virheellinen tuotteen versio:"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -15262,7 +15327,6 @@ msgstr ""
"Tämä solmu on poistettu käytöstä. Käytä sen sijaan AnimationTree solmua."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Apply color\n"
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index 1cab78fd72..dd6e9aaa68 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -1448,6 +1448,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2803,7 +2807,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5459,6 +5463,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7897,7 +7905,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8780,6 +8793,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8826,6 +8843,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8842,7 +8871,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9525,18 +9564,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12098,6 +12125,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13393,6 +13424,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index 03dff89a24..37752a1a22 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -40,7 +40,7 @@
# Tommy Melançon-Roy <tommel1234@hotmail.com>, 2017-2018.
# Willow <theotimefd@aol.com>, 2018.
# Xananax <xananax@yelostudio.com>, 2017-2018.
-# Perrier Mathis <mathis.perrier73@gmail.com>, 2018.
+# Perrier Mathis <mathis.perrier73@gmail.com>, 2018, 2022.
# Ewan Lehnebach <ewan.lehnebach@gmail.com>, 2018.
# Hugo Locurcio <hugo.locurcio@hugo.pro>, 2018, 2019, 2020, 2021.
# Grigore Antoniuc <grisa181@gmail.com>, 2018.
@@ -70,7 +70,7 @@
# Camille Mohr-Daurat <pouleyketchoup@gmail.com>, 2019.
# Pierre Stempin <pierre.stempin@gmail.com>, 2019.
# Pierre Caye <pierrecaye@laposte.net>, 2020, 2021, 2022.
-# Kevin Bouancheau <kevin.bouancheau@gmail.com>, 2020.
+# Kevin Bouancheau <kevin.bouancheau@gmail.com>, 2020, 2022.
# LaurentOngaro <laurent@gameamea.com>, 2020.
# Julien Humbert <julroy67@gmail.com>, 2020.
# Nathan <bonnemainsnathan@gmail.com>, 2020, 2021, 2022.
@@ -88,13 +88,14 @@
# Maxime Leroy <lisacintosh@gmail.com>, 2022.
# Adi-df <adidf-web@laposte.net>, 2022.
# MinusKube <minuskube@gmail.com>, 2022.
+# Alexandre <alexandre.blanquero00@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: 2022-02-10 07:50+0000\n"
-"Last-Translator: Maxime Leroy <lisacintosh@gmail.com>\n"
+"PO-Revision-Date: 2022-03-04 08:19+0000\n"
+"Last-Translator: Alexandre <alexandre.blanquero00@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -102,7 +103,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.11-dev\n"
+"X-Generator: Weblate 4.11.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1571,6 +1572,11 @@ msgstr "Charger l'agencement de transport par défaut."
msgid "Create a new Bus Layout."
msgstr "Créer une nouvel agencement de tranport."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Ouvrir une disposition de bus audio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nom invalide."
@@ -3036,7 +3042,7 @@ msgstr "Basculer en mode sans distraction."
msgid "Add a new scene."
msgstr "Ajouter une nouvelle scène."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scène"
@@ -3414,14 +3420,13 @@ msgid "Update Continuously"
msgstr "Mettre à jour en continu"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Mettre à jour quand modifié"
+msgstr "Mettre à jour les changements"
#: editor/editor_node.cpp
#, fuzzy
msgid "Update Vital Changes"
-msgstr "Changements de matériau :"
+msgstr "Changements de matériau"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4206,6 +4211,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Cette extension de fichier n'est pas reconnue par l'éditeur.\n"
+"Si vous voulez quand même le renommer, utilisez le gestionnaire de fichiers "
+"de votre système d'exploitation.\n"
+"Après avoir été renommé avec une extension inconnue, le fichier ne sera plus "
+"affiché dans l'éditeur."
#: editor/filesystem_dock.cpp
msgid ""
@@ -4848,7 +4858,7 @@ msgstr "Supprimer le polygone et le point"
#: editor/plugins/animation_state_machine_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr "Ajouter une animation"
+msgstr "Ajouter une Animation"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -5831,6 +5841,10 @@ msgid "Bake Lightmaps"
msgstr "Précalculer les lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Sélectionnez le fichier de précalcul de lightmap :"
@@ -8334,7 +8348,13 @@ msgid "Cinematic Preview"
msgstr "Aperçu cinématographique"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Non disponible quand le moteur de rendu GLES2 est utilisé."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9239,6 +9259,11 @@ msgid "Select Another Theme Resource:"
msgstr "Sélectionnez une autre ressource Theme :"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Renommer une ressource"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Autre thème"
@@ -9288,6 +9313,20 @@ msgstr ""
"appartenant à ce type."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Ajouter un item de type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Définir type de variable"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Changer le type de base"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Afficher par défaut"
@@ -9305,8 +9344,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Changer le type de base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -10013,18 +10063,6 @@ msgid "Commit list size"
msgstr "Valider la taille des listes"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Branches"
@@ -12793,6 +12831,11 @@ msgid "Stack Frames"
msgstr "Pile des appels"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrer les tuiles"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profileur"
@@ -14128,9 +14171,10 @@ msgstr "Nom de paquet invalide :"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Module \"GodotPaymentV3\" invalide inclus dans le paramétrage du projet "
-"\"android/modules\" (modifié dans Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14403,43 +14447,40 @@ msgstr "Erreur de démarrage du serveur HTTP :"
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "Le système de fichiers ne peut être accédé."
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "Le hachage de « Info.plist » n'a pu être récupéré."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "Nom du projet invalide."
+msgstr "« Info.plist » invalide, aucun nom d'exécutable."
#: platform/osx/export/codesign.cpp
+#, fuzzy
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "« Info.plist » invalide, aucun identifiant de bundle."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "Géométrie invalide, impossible de créer le polygone."
+msgstr "« Info.plist » invalide, n'a pu être chargé."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "Impossible de créer le dossier."
+msgstr "Échec de création du sous-dossier « %s »."
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
msgstr ""
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Chemin de base invalide."
+msgstr "Format binaire invalide."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "Déjà signé !"
#: platform/osx/export/codesign.cpp
#, fuzzy
@@ -14461,9 +14502,8 @@ msgid "Invalid entitlements file."
msgstr "Extension invalide."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "Extension invalide."
+msgstr "Fichier exécutable invalide."
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
@@ -14479,7 +14519,7 @@ msgstr ""
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "Type d'objet inconnu."
#: platform/osx/export/export.cpp
msgid ""
@@ -14500,9 +14540,8 @@ msgid ""
msgstr ""
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "Pas d'icônes trouvées."
+msgstr "Aucune identité trouvée."
#: platform/osx/export/export.cpp
#, fuzzy
@@ -14530,7 +14569,7 @@ msgstr ""
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "Création du PKG"
#: platform/osx/export/export.cpp
msgid ""
@@ -14544,7 +14583,7 @@ msgstr ""
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "Création du DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
@@ -14552,7 +14591,7 @@ msgstr ""
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "Création du ZIP"
#: platform/osx/export/export.cpp
msgid ""
@@ -14641,34 +14680,46 @@ msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
msgstr ""
+"Confidentialité : L'accès au microphone est actif, mais son usage n'a pas "
+"été spécifié."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
msgstr ""
+"Confidentialité : L'accès à la caméra est actif, mais son usage n'a pas été "
+"spécifié."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
msgstr ""
+"Confidentialité : L'accès au informations de positionnement est actif, mais "
+"son usage n'a pas été spécifié."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
msgstr ""
+"Confidentialité : L'accès au carnet d'adresses est actif, mais son usage n'a "
+"pas été spécifié."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
msgstr ""
+"Confidentialité : L'accès au calendrier est actif, mais son usage n'a pas "
+"été spécifié."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Photo library access is enabled, but usage description is not "
"specified."
msgstr ""
+"Confidentialité : L'accès à la bibliothèque de photos est actif, mais son "
+"usage n'a pas été spécifié."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14740,21 +14791,21 @@ msgid ""
"The rcedit tool must be configured in the Editor Settings (Export > Windows "
"> Rcedit) to change the icon or app information data."
msgstr ""
+"L'outil « rcedit » doit être configuré dans les préférences de l'éditeur "
+"(Exporter > Windows > Rcedit) for modifier l'icône ou les informations de "
+"l'application."
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "Chemin invalide."
+msgstr "Chemin d'icône invalide :"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "Extension invalide."
+msgstr "Version de fichier invalide :"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "GUID produit invalide."
+msgstr "Version du produit invalide :"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -15508,14 +15559,13 @@ msgid "This node has been deprecated. Use AnimationTree instead."
msgstr "Ce nœud est désormais déprécié. Utilisez AnimationTree à la place."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Apply color\n"
"RMB: Remove preset"
msgstr ""
"Couleur : #%s\n"
-"Clic gauche : Définir la couleur\n"
+"Clic gauche : Appliquer la couleur\n"
"Clic droit : Supprimer le préréglage"
#: scene/gui/color_picker.cpp
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index 4db0862314..734f2c1f82 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -1440,6 +1440,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2792,7 +2796,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5439,6 +5443,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7867,7 +7875,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8747,6 +8760,11 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Acmhainn"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8793,6 +8811,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8809,7 +8839,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9488,18 +9528,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12061,6 +12089,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Scagairí..."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13354,6 +13387,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/gl.po b/editor/translations/gl.po
index b88f8f0430..420ad5ebf3 100644
--- a/editor/translations/gl.po
+++ b/editor/translations/gl.po
@@ -1488,6 +1488,11 @@ msgstr "Cargar a disposición de Bus por defecto."
msgid "Create a new Bus Layout."
msgstr "Crear unha nova Disposición de Bus."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Abrir Disposición do Bus de Son"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nome inválido."
@@ -2947,7 +2952,7 @@ msgstr "Act./Desact. modo sen distraccións."
msgid "Add a new scene."
msgstr "Engadir unha nova escena."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Escena"
@@ -5684,6 +5689,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -8193,7 +8202,13 @@ msgid "Cinematic Preview"
msgstr "Vista Previa Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Non dispoñible cando se está usando o renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9137,6 +9152,11 @@ msgstr "Eliminar Recurso"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Renomear Recurso"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Importar Tema"
@@ -9190,6 +9210,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Engadir Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Cambiar Tipo Base:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Cambiar Tipo Base:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Cargar Valores por Defecto"
@@ -9208,8 +9243,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Engadir Elemento"
+msgid "Base Type"
+msgstr "Cambiar Tipo Base:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9904,18 +9949,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Coincidencias:"
@@ -12584,6 +12617,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrar sinais"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Analítica de Rendemento"
@@ -13913,6 +13951,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/he.po b/editor/translations/he.po
index c7966a9536..668cc67dd0 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -1480,6 +1480,11 @@ msgstr "טעינת בררת המחדל של פריסת אפיקי השמע."
msgid "Create a new Bus Layout."
msgstr "יצירת פריסת אפיקים חדשה."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "פתיחת פריסת אפיקי שמע"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "שם שגוי."
@@ -2891,7 +2896,7 @@ msgstr "הפעל/בטל מצב ללא הסחות דעת."
msgid "Add a new scene."
msgstr "הוספת סצנה חדשה."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "סצנה"
@@ -5692,6 +5697,10 @@ msgid "Bake Lightmaps"
msgstr "אפיית Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "בחירת קובץ תבנית"
@@ -8271,7 +8280,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9230,6 +9244,11 @@ msgstr "מחיקת משאב"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "שינוי שם משאב"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "ייבוא ערכת עיצוב"
@@ -9283,6 +9302,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "קביעת סוג משתנה"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "שינוי סוג בסיס"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "טעינת בררת המחדל"
@@ -9301,7 +9334,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "שינוי סוג בסיס"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -10053,18 +10097,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "התאמות:"
@@ -12736,6 +12768,11 @@ msgid "Stack Frames"
msgstr "מחסנית מסגרות"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "מאפייני פריט."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "מאפיין"
@@ -14085,9 +14122,10 @@ msgstr "שם חבילה לא חוקי:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"מודול \"GodotPaymentV3\" לא חוקי נמצא בהגדרת המיזם "
-"ב-\"אנדרואיד/מודולים\" (שינוי בגודו 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index eb5c524b8a..6911744a46 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -1490,6 +1490,11 @@ msgstr "प्रायिक बस लेआउट लोड कीजिय
msgid "Create a new Bus Layout."
msgstr "नई बस लेआउट बनाइये."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "ऑडियो बस लेआउट खोलिये"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "अमान्य नाम."
@@ -2915,7 +2920,7 @@ msgstr "व्याकुलता मुक्त मोड टॉगल।"
msgid "Add a new scene."
msgstr "एक नया दृश्य जोड़ें।"
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "दृश्य"
@@ -5659,6 +5664,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "टेम्पलेट फ़ाइल का चयन करें"
@@ -8141,7 +8150,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9073,6 +9087,11 @@ msgid "Select Another Theme Resource:"
msgstr "खोज रिप्लेसमेंट संसाधन:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "संसाधन"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -9123,6 +9142,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "प्रायिक लोड कीजिये"
@@ -9141,7 +9172,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "%s का टाइप बदले"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9867,18 +9909,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "एक जैसा:"
@@ -12503,6 +12533,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "स्क्रीनिंग सिग्नल"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13843,6 +13878,9 @@ msgstr "गलत फॉण्ट का आकार |"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index 91849fe548..418c07c345 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -1460,6 +1460,11 @@ msgstr "Učitaj zadani Bus Izgled."
msgid "Create a new Bus Layout."
msgstr "Kreiraj novi Bus izgled."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Promijeni glasnoću zvučne sabirnice"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nevažeće ime."
@@ -2821,7 +2826,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5489,6 +5494,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7934,7 +7943,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8825,6 +8839,11 @@ msgid "Select Another Theme Resource:"
msgstr "Traži zamjenu resursa:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Resurs"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8874,6 +8893,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Promijeni vrstu baze:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Promijeni vrstu baze:"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Učitaj Zadano"
@@ -8891,7 +8924,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Promijeni vrstu baze:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9582,18 +9626,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Podudaranja:"
@@ -12170,6 +12202,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtriraj signale"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13473,6 +13510,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index 85150bd14d..4a1d254c59 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -1498,6 +1498,11 @@ msgstr "Betölti az alapértelmezett Busz Elrendezést."
msgid "Create a new Bus Layout."
msgstr "Új Buszelrendezés létrehozása."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Hangbusz Elrendezés Megnyitása"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Érvénytelen név."
@@ -2965,7 +2970,7 @@ msgstr "Zavarmentes mód váltása."
msgid "Add a new scene."
msgstr "Hozzáad egy új jelenetet."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Jelenet"
@@ -5716,6 +5721,10 @@ msgid "Bake Lightmaps"
msgstr "Fény Besütése"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Válasszon fénytérkép sablonfájlt:"
@@ -8213,7 +8222,12 @@ msgid "Cinematic Preview"
msgstr "Filmszerű előnézet"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9142,6 +9156,11 @@ msgstr "Erőforrás Törlése"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Erőforrás Átnevezése"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Téma Importálása"
@@ -9196,6 +9215,21 @@ 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 "Set Variation Base Type"
+msgstr "Alaptípus módosítása:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Alaptípus módosítása:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Alapértelmezett Betöltése"
@@ -9214,8 +9248,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Elem Hozzáadása"
+msgid "Base Type"
+msgstr "Alaptípus módosítása:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9908,18 +9952,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Egyezések:"
@@ -12504,6 +12536,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Csempék szűrése"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13842,6 +13879,9 @@ msgstr "Érvénytelen csomagnév:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/id.po b/editor/translations/id.po
index 6955f05f3a..775ab4d8c1 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -24,7 +24,7 @@
# Modeus Darksono <garuga17@gmail.com>, 2019.
# Akhmad Zulfikar <azuldegratz@gmail.com>, 2020.
# Ade Fikri Malihuddin <ade.fm97@gmail.com>, 2020.
-# zephyroths <ridho.hikaru@gmail.com>, 2020, 2021.
+# zephyroths <ridho.hikaru@gmail.com>, 2020, 2021, 2022.
# Richard Urban <redasuio1@gmail.com>, 2020.
# yusuf afandi <afandi.yusuf.04@gmail.com>, 2020.
# Habib Rohman <revolusi147id@gmail.com>, 2020.
@@ -40,8 +40,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-19 08:43+0000\n"
-"Last-Translator: Brian <brian@brianthe.dev>\n"
+"PO-Revision-Date: 2022-02-23 17:54+0000\n"
+"Last-Translator: zephyroths <ridho.hikaru@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/"
"godot/id/>\n"
"Language: id\n"
@@ -49,7 +49,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.9.1-dev\n"
+"X-Generator: Weblate 4.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -352,9 +352,8 @@ msgid "Duplicate Key(s)"
msgstr "Duplikat Key"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add RESET Value(s)"
-msgstr "Tambah %d Frame"
+msgstr "Tambahkan Nilai RESET"
#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
@@ -1507,6 +1506,11 @@ msgstr "Muat default Layout Bus."
msgid "Create a new Bus Layout."
msgstr "Buat Layout Bus Baru."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Buka Layout Suara Bus"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nama tidak sah."
@@ -2956,7 +2960,7 @@ msgstr "Toggle mode tanpa gangguan."
msgid "Add a new scene."
msgstr "Tambah skena baru."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Skena"
@@ -5706,6 +5710,10 @@ msgid "Bake Lightmaps"
msgstr "Panggang Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Pilih berkas lightmap bake:"
@@ -8201,7 +8209,13 @@ msgid "Cinematic Preview"
msgstr "Pratinjau Sinematik"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Tidak tersedia ketika menggunakan perender GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9135,6 +9149,11 @@ msgstr "Pilih Tema Lain Aset:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Ubah Nama Resource"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Impor Tema"
@@ -9189,6 +9208,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Tambah Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Atur Jenis variabel"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Ubah Tipe Basis"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Muat Default"
@@ -9207,8 +9241,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Tambah Item"
+msgid "Base Type"
+msgstr "Ubah Tipe Basis"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9928,18 +9972,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Kecocokan:"
@@ -12699,6 +12731,11 @@ msgid "Stack Frames"
msgstr "Stack Frame"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filter tile"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profiler(debugger/pemantauan)"
@@ -14059,9 +14096,10 @@ msgstr "Nama paket tidak valid:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Modul \"GodotPaymentV3\" tidak valid yang dimasukkan dalam pengaturan proyek "
-"\"android/modules\" (diubah di Godot 3.2.2)\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/is.po b/editor/translations/is.po
index 824f7a7248..45098e09ee 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -1476,6 +1476,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2834,7 +2838,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5504,6 +5508,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7959,7 +7967,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8854,6 +8867,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8902,6 +8919,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8918,7 +8947,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9619,18 +9658,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12221,6 +12248,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13531,6 +13562,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/it.po b/editor/translations/it.po
index 3da90af619..6ca5230b6b 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -66,13 +66,14 @@
# Theraloss <danilo.polani@gmail.com>, 2021.
# Pietro Grungo <pietro.grungo@libero.it>, 2021.
# Alfonso Scarpino <alfonso.scarpino@gmail.com>, 2022.
+# Federico Caprini <caprinifede@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: 2022-01-31 22:50+0000\n"
-"Last-Translator: Mirko <miknsop@gmail.com>\n"
+"PO-Revision-Date: 2022-02-23 17:54+0000\n"
+"Last-Translator: Federico Caprini <caprinifede@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
"Language: it\n"
@@ -103,7 +104,7 @@ msgstr "Input %i non valido (assente) nell'espressione"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "self non può essere usato perché l'istanza è nulla (non passata)"
+msgstr "self non può essere usato perché l'istanza è null (non passata)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -1543,6 +1544,11 @@ msgstr "Carica la disposizione di bus predefinita."
msgid "Create a new Bus Layout."
msgstr "Crea una nuova disposizione di bus."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Apri la disposizione di un bus audio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nome non valido."
@@ -1948,7 +1954,7 @@ msgstr "Rendi attuale"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
msgid "Import"
-msgstr "Importazione"
+msgstr "Importa"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -3002,7 +3008,7 @@ msgstr "Commuta la modalità senza distrazioni."
msgid "Add a new scene."
msgstr "Aggiungi una nuova scena."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scena"
@@ -3382,9 +3388,8 @@ msgid "Update All Changes"
msgstr "Aggiorna quando modificata"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Cambiamenti dei materiali:"
+msgstr "Cambiamenti dei materiali"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4168,6 +4173,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Quest'estensione file non è riconosciuta dall'editore.\n"
+"Se vuoi comunque rinominarla, usa il file manager del tuo sistema "
+"operativo.\n"
+"Dopo averlo rinominato ad un'estensione sconosciuta, il file non verrà più "
+"visualizzato nell'editore."
#: editor/filesystem_dock.cpp
msgid ""
@@ -4629,6 +4639,8 @@ msgid ""
"Select a resource file in the filesystem or in the inspector to adjust "
"import settings."
msgstr ""
+"Seleziona un file risorsa nel filesystem o nell'ispettore per aggiustare le "
+"impostazioni di importazione."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
@@ -5789,6 +5801,10 @@ msgid "Bake Lightmaps"
msgstr "Preprocessa Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Seleziona il file bake della lightmap:"
@@ -8324,7 +8340,13 @@ msgid "Cinematic Preview"
msgstr "Anteprima Cinematografica"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Non disponibile quando il renderer GLES2 è in uso."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8455,15 +8477,15 @@ msgstr "Vista laterale destra"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Down"
-msgstr ""
+msgstr "Orbita la visuale in giù"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Left"
-msgstr ""
+msgstr "Orbita la visuale in su"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Right"
-msgstr ""
+msgstr "Orbita la visuale a destra"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -8496,11 +8518,11 @@ msgstr "Commuta la vista libera"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Decrease Field of View"
-msgstr ""
+msgstr "Diminuisci il Campo Visivo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Increase Field of View"
-msgstr ""
+msgstr "Aumenta il Campo Visivo"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -8949,7 +8971,7 @@ msgstr "Importa tema"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Importa oggetti {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Updating the editor"
@@ -8978,11 +9000,11 @@ msgstr "Seleziona tutti gli oggetti colorati visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Seleziona tutti gli oggetti colorati e i loro dati."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Deseleziona tutti gli oggetti colorati."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items."
@@ -8990,7 +9012,7 @@ msgstr "Seleziona tutti gli oggetti visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Seleziona tutti gli oggetti costanti e i loro dati."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
@@ -9251,6 +9273,11 @@ msgstr "Seleziona un'altra risorsa del tema:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Rinomina risorsa"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Importa tema"
@@ -9304,6 +9331,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Aggiungi Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Imposta Tipo di Variabile"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Cambia Tipo di Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Carica i predefiniti"
@@ -9322,8 +9364,18 @@ msgstr "Sovrascrivi tutti gli elementi predefiniti."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Aggiungi Elemento"
+msgid "Base Type"
+msgstr "Cambia Tipo di Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9940,18 +9992,16 @@ msgid "Unstaged Changes"
msgstr "Cambiamenti degli shader:"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit:"
-msgstr "Commit"
+msgstr "Commit:"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Date:"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Subtitle:"
-msgstr "Sottoalbero"
+msgstr "Sottotitolo:"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Do you want to remove the %s branch?"
@@ -10024,9 +10074,8 @@ msgid "Stage all changes"
msgstr "Memorizzazione dei cambiamenti locali…"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Unstage all changes"
-msgstr "Cambiamenti dei materiali:"
+msgstr "Annulla tutte le modifiche"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -10047,21 +10096,8 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Branches"
-msgstr "Corrispondenze:"
+msgstr "Rami"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -10093,14 +10129,12 @@ msgid "Remove Remote"
msgstr "Rimuovi l'elemento"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote Name"
-msgstr "Remoto "
+msgstr "Nome Remoto"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote URL"
-msgstr "Remoto "
+msgstr "URL Remoto"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Fetch"
@@ -10140,9 +10174,8 @@ msgid "Unmerged"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "View:"
-msgstr "Vista"
+msgstr "Vista:"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -12826,6 +12859,11 @@ msgid "Stack Frames"
msgstr "Stack Frame"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtra tiles"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profiler"
@@ -13780,9 +13818,8 @@ msgid "in order:"
msgstr "Rinomina cartella:"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "Switch"
-msgstr "Switch"
+msgstr "Inverti"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "'input' is:"
@@ -14015,9 +14052,8 @@ msgid "Yield"
msgstr ""
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "Wait"
-msgstr "Wait"
+msgstr "Aspetta"
#: modules/visual_script/visual_script_yield_nodes.cpp
#, fuzzy
@@ -14194,9 +14230,10 @@ msgstr "Nome del pacchetto non valido:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Modulo \"GodotPaymentV3\" non valido incluso nell'impostazione del progetto "
-"\"android/moduli\" (modificato in Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index de6c22ce1a..81522d182d 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -42,7 +42,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: 2022-02-14 22:08+0000\n"
+"PO-Revision-Date: 2022-03-08 08:59+0000\n"
"Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
@@ -51,7 +51,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.11-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1508,6 +1508,11 @@ msgstr "デフォルトのバスレイアウトを読み込む。"
msgid "Create a new Bus Layout."
msgstr "新規バスレイアウトを作成。"
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "オーディオバスのレイアウトを開く"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "無効な名前です。"
@@ -2947,7 +2952,7 @@ msgstr "集中モードを切り替える。"
msgid "Add a new scene."
msgstr "新規シーンを追加する。"
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "シーン"
@@ -3117,7 +3122,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
-msgstr "コリジョン形状の表示"
+msgstr "コリジョン形状を表示"
#: editor/editor_node.cpp
msgid ""
@@ -3129,7 +3134,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Visible Navigation"
-msgstr "ナビゲーションの表示"
+msgstr "ナビゲーションを表示"
#: editor/editor_node.cpp
msgid ""
@@ -3141,7 +3146,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Force Shader Fallbacks"
-msgstr ""
+msgstr "シェーダーフォールバックを強制"
#: editor/editor_node.cpp
msgid ""
@@ -3152,10 +3157,16 @@ msgid ""
"Asynchronous shader compilation must be enabled in the project settings for "
"this option to make a difference."
msgstr ""
+"このオプションを有効にすると、すべての実行時にシェーダーがフォールバック形式 "
+"(ubershaderで表示するか非表示) で使用されます。\n"
+"これは、通常は簡素に表示されるフォールバックの、見た目と性能を確認するために"
+"役立ちます。\n"
+"このオプションを機能させるには、プロジェクト設定で非同期シェーダーコンパイル"
+"を有効にする必要があります。"
#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
-msgstr "シーンの変更を同期"
+msgstr "シーン変更を同期"
#: editor/editor_node.cpp
msgid ""
@@ -3171,7 +3182,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Synchronize Script Changes"
-msgstr "スクリプトの変更を同期"
+msgstr "スクリプト変更を同期"
#: editor/editor_node.cpp
msgid ""
@@ -4097,6 +4108,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"このファイル拡張子はエディターによって認識されません。\n"
+"それでも名前を変更したい場合は、オペレーティングシステムのファイルマネー"
+"ジャーを使用してください。\n"
+"不明な拡張子へと名前を変更すると、そのファイルはエディターに表示されなくなり"
+"ます。"
#: editor/filesystem_dock.cpp
msgid ""
@@ -5707,6 +5723,10 @@ msgid "Bake Lightmaps"
msgstr "ライトマップを焼き込む"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "ライトマップベイクファイルを選択:"
@@ -5801,11 +5821,11 @@ msgstr "Control \"%s\" を (%d, %d) にリサイズします"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale %d CanvasItems"
-msgstr "%d 個の CanvasItem を拡大 / 縮小"
+msgstr "%d 個の CanvasItem を拡大縮小"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale CanvasItem \"%s\" to (%s, %s)"
-msgstr "CanvasItem \"%s\" を (%s, %s) に拡大 / 縮小"
+msgstr "CanvasItem \"%s\" を (%s, %s) に拡大縮小"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move %d CanvasItems"
@@ -6052,7 +6072,7 @@ msgstr "スケールモード"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Shift: Scale proportionally."
-msgstr ""
+msgstr "Shift: 比率を保って拡大縮小。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8190,7 +8210,13 @@ msgid "Cinematic Preview"
msgstr "シネマティックプレビュー"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "GLES2レンダラーの場合は利用できません。"
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8430,23 +8456,23 @@ msgstr "設定..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
-msgstr "スナップの設定"
+msgstr "スナップ設定"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate Snap:"
-msgstr "スナップの移動:"
+msgstr "移動スナップ:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr "スナップの回転(度):"
+msgstr "回転スナップ (度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr "スナップの拡大/縮小(%):"
+msgstr "拡大 / 縮小スナップ (%):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
-msgstr "ビューポートの設定"
+msgstr "ビューポート設定"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
@@ -8454,15 +8480,15 @@ msgstr "視野角(度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr "Z-Nearの表示:"
+msgstr "ビューのZ-Near:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr "Z-Farの表示:"
+msgstr "ビューのZ-Far:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
-msgstr "トランスフォームの変更"
+msgstr "トランスフォーム変更"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
@@ -9084,6 +9110,11 @@ msgid "Select Another Theme Resource:"
msgstr "他のテーマリソースの選択:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "リソース名を変更"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "他のテーマ"
@@ -9132,8 +9163,22 @@ msgstr ""
"てのこのタイプのStyleBoxで同じプロパティが更新されます。"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "アイテムのタイプを追加"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "変数の型を設定"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "基底型を変更"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
-msgstr "デフォルトの表示"
+msgstr "デフォルトを表示"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
@@ -9149,8 +9194,19 @@ msgid "Override all default type items."
msgstr "すべてのデフォルトタイプのアイテムをオーバーライドする。"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "アイテムのタイプを追加"
+#, fuzzy
+msgid "Base Type"
+msgstr "基底型を変更"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9859,18 +9915,6 @@ msgid "Commit list size"
msgstr "コミットリストサイズ"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "ブランチ"
@@ -12604,6 +12648,11 @@ msgid "Stack Frames"
msgstr "スタックフレーム"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "タイルを絞り込む"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "プロファイラー"
@@ -13944,9 +13993,10 @@ msgstr "無効なパッケージ名:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"「android/modules」に含まれる「GodotPaymentV3」モジュールのプロジェクト設定が"
-"無効です (Godot 3.2.2 にて変更)。\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index b3d35a3311..8a18925bb4 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -1535,6 +1535,11 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "აუდიო გადამტანის ხმის გადართვა"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2919,7 +2924,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5645,6 +5650,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "წავშალოთ მონიშნული ფაილები?"
@@ -8159,7 +8168,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9072,6 +9086,11 @@ msgid "Select Another Theme Resource:"
msgstr "ჩამნაცვლებელი რესურსის ძიება:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "რესურსი"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -9123,6 +9142,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "%s ტიპის ცვლილება"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "%s ტიპის ცვლილება"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -9139,7 +9172,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "%s ტიპის ცვლილება"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9861,18 +9905,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "დამთხვევები:"
@@ -12508,6 +12540,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "დამაკავშირებელი სიგნალი:"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13834,6 +13871,9 @@ msgstr "არასწორი ფონტის ზომა."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/km.po b/editor/translations/km.po
index a386fd1188..d3f13b9d89 100644
--- a/editor/translations/km.po
+++ b/editor/translations/km.po
@@ -1437,6 +1437,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2786,7 +2790,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5429,6 +5433,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7861,7 +7869,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8736,6 +8749,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8782,6 +8799,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8798,7 +8827,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9474,18 +9513,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12039,6 +12066,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13323,6 +13354,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index 0312c7fd92..15bed58f67 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -16,7 +16,7 @@
# Jiyoon Kim <kimjiy@dickinson.edu>, 2019.
# Ervin <zetsmart@gmail.com>, 2019.
# Tilto_ <tilto0822@develable.xyz>, 2020.
-# Myeongjin Lee <aranet100@gmail.com>, 2020, 2021.
+# Myeongjin Lee <aranet100@gmail.com>, 2020, 2021, 2022.
# Doyun Kwon <caen4516@gmail.com>, 2020.
# Jun Hyung Shin <shmishmi79@gmail.com>, 2020.
# Yongjin Jo <wnrhd114@gmail.com>, 2020.
@@ -35,8 +35,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: 2022-02-04 13:45+0000\n"
-"Last-Translator: Lee Minhak <minarihak@gmail.com>\n"
+"PO-Revision-Date: 2022-03-04 08:19+0000\n"
+"Last-Translator: Myeongjin Lee <aranet100@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
"Language: ko\n"
@@ -44,7 +44,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.11-dev\n"
+"X-Generator: Weblate 4.11.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1499,6 +1499,11 @@ msgstr "디폴트 버스 레이아웃을 불러옵니다."
msgid "Create a new Bus Layout."
msgstr "새로운 버스 레이아웃을 만듭니다."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "오디오 버스 레이아웃 열기"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "올바르지 않은 이름입니다."
@@ -2735,7 +2740,7 @@ msgstr "예"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr "에디터를 나가시겠습니까?"
+msgstr "에디터를 끝내시겠습니까?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
@@ -2936,7 +2941,7 @@ msgstr "집중 모드를 토글합니다."
msgid "Add a new scene."
msgstr "새 씬을 추가합니다."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "씬"
@@ -3058,7 +3063,7 @@ msgstr "현재 프로젝트 새로고침"
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "종료 후 프로젝트 목록 열기"
+msgstr "종료 후 프로젝트 목록으로 이동"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
@@ -5682,6 +5687,10 @@ msgid "Bake Lightmaps"
msgstr "라이트맵 굽기"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "라이트맵을 구울 파일 선택:"
@@ -8066,11 +8075,11 @@ msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
-msgstr "윗면 보기."
+msgstr "상단면 보기."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View."
-msgstr "아랫면 보기."
+msgstr "하단면 보기."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
@@ -8161,7 +8170,13 @@ msgid "Cinematic Preview"
msgstr "시네마틱 미리보기"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "GLES2 렌더러에서 사용할 수 없습니다."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8261,11 +8276,11 @@ msgstr "포털 컬링을 위한 룸을 변환합니다."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr "아래쪽 뷰"
+msgstr "하단 뷰"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr "위쪽 뷰"
+msgstr "상단 뷰"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
@@ -9052,6 +9067,11 @@ msgid "Select Another Theme Resource:"
msgstr "다른 테마 리소스 선택:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "리소스 이름 바꾸기"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "다른 테마"
@@ -9103,6 +9123,20 @@ msgstr ""
"일박스에서 같은 속성이 업데이트됩니다."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "항목 타입 추가"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "변수 타입 설정"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "기본 타입 바꾸기"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "디폴트 보이기"
@@ -9119,8 +9153,19 @@ msgid "Override all default type items."
msgstr "모든 디폴트 타입 항목을 오버라이드합니다."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "항목 타입 추가"
+#, fuzzy
+msgid "Base Type"
+msgstr "기본 타입 바꾸기"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9834,18 +9879,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "일치함:"
@@ -9880,14 +9913,12 @@ msgid "Remove Remote"
msgstr "항목 제거"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote Name"
-msgstr "원격 "
+msgstr "원격 이름"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote URL"
-msgstr "원격 "
+msgstr "원격 URL"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Fetch"
@@ -12557,6 +12588,11 @@ msgid "Stack Frames"
msgstr "스택 프레임"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "타일 필터"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "프로파일러"
@@ -13736,7 +13772,7 @@ msgstr ""
#: modules/visual_script/visual_script_yield_nodes.cpp
msgid "Wait"
-msgstr ""
+msgstr "대기"
#: modules/visual_script/visual_script_yield_nodes.cpp
#, fuzzy
@@ -13899,9 +13935,10 @@ msgstr "잘못된 패키지 이름:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"\"android/modules\" 프로젝트 세팅에 잘못된 \"GodotPaymentV3\" 모듈이 포함되"
-"어 있습니다. (Godot 3.2.2 에서 변경됨).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index bdbebb1717..24b3403eeb 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -1485,6 +1485,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2876,7 +2880,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5627,6 +5631,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Pasirinkite Nodus, kuriuos norite importuoti"
@@ -8134,7 +8142,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9054,6 +9067,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Ištekliai"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Redaguoti Filtrus"
@@ -9103,6 +9121,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -9119,7 +9149,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9849,18 +9889,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12485,6 +12513,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrai..."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13819,6 +13852,9 @@ msgstr "Netinkamas šrifto dydis."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index 2216810855..4bf3eb8bbd 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -1480,6 +1480,11 @@ msgstr "Ielādēt Kopnes Izkārtojuma noklusējumu."
msgid "Create a new Bus Layout."
msgstr "Izveidot jaunu Kopnes izkārtojumu."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Atvērt audio kopnes izkārtojumu"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nederīgs nosaukums."
@@ -2914,7 +2919,7 @@ msgstr "Pārslēgt traucējumu brīvo režīmu."
msgid "Add a new scene."
msgstr "Pievienot jaunu ainu."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Aina"
@@ -5579,6 +5584,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Izvēlēties gaismas kartes cepšanas failu:"
@@ -8008,7 +8017,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8884,6 +8898,11 @@ msgid "Select Another Theme Resource:"
msgstr "Izvēlēties citu motīva resursu:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Resurss"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8933,6 +8952,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Nomainīt Bāzes Tipu:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Nomainīt Bāzes Tipu:"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Rādīt noklusējumu"
@@ -8949,7 +8982,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Mainīt tipu"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9633,18 +9677,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Zari"
@@ -12208,6 +12240,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrēt signālus"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13515,6 +13552,9 @@ msgstr "Nederīgs paketes nosaukums:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index 745e54d697..322a593bd0 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -1429,6 +1429,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2778,7 +2782,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5420,6 +5424,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7845,7 +7853,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8720,6 +8733,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8766,6 +8783,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8782,7 +8811,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9458,18 +9497,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12023,6 +12050,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13306,6 +13337,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/mk.po b/editor/translations/mk.po
index 38ee72ff58..44b39d18ee 100644
--- a/editor/translations/mk.po
+++ b/editor/translations/mk.po
@@ -1437,6 +1437,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2790,7 +2794,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5436,6 +5440,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7868,7 +7876,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8743,6 +8756,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8789,6 +8806,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8805,7 +8834,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9482,18 +9521,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12048,6 +12075,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13332,6 +13363,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index 085e4e1af3..659971d0b5 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -1442,6 +1442,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2797,7 +2801,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5444,6 +5448,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7877,7 +7885,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8752,6 +8765,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8798,6 +8815,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8814,7 +8843,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9491,18 +9530,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12056,6 +12083,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13345,6 +13376,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index d3faab3d90..8b502fff5a 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -2,13 +2,13 @@
# 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.
+# Prachi Joshi <josprachi@yahoo.com>, 2019, 2020, 2022.
# Shirious <sad3119823@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2020-12-23 22:57+0000\n"
+"PO-Revision-Date: 2022-02-23 17:55+0000\n"
"Last-Translator: Prachi Joshi <josprachi@yahoo.com>\n"
"Language-Team: Marathi <https://hosted.weblate.org/projects/godot-engine/"
"godot/mr/>\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.4.1-dev\n"
+"X-Generator: Weblate 4.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -43,15 +43,15 @@ msgstr "self वापरले जाऊ शकत नाही कारण
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr ""
+msgstr "ऑपरेटर %s, %s आणि %s साठी अवैध ऑपरेंड."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr ""
+msgstr "बेस प्रकार %s साठी %s प्रकाराची अवैध अनुक्रमणिका"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr ""
+msgstr "बेस प्रकार %s साठी अवैध नामांकित इंडेक्स '%s'"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
@@ -1437,6 +1437,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2787,7 +2791,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5431,6 +5435,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7862,7 +7870,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8738,6 +8751,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8785,6 +8802,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8801,7 +8830,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9479,18 +9518,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12049,6 +12076,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13335,6 +13366,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index 71c60c4921..9854a707cc 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -16,7 +16,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: 2022-02-03 13:04+0000\n"
+"PO-Revision-Date: 2022-02-23 17:55+0000\n"
"Last-Translator: Keviindran Ramachandran <keviinx@yahoo.com>\n"
"Language-Team: Malay <https://hosted.weblate.org/projects/godot-engine/godot/"
"ms/>\n"
@@ -1483,6 +1483,11 @@ msgstr "Muatkan Susun Atur Bas lalai."
msgid "Create a new Bus Layout."
msgstr "Cipta Susun Atur Bas baru."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Buka Susun Atur Bas Audio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nama tidak sah."
@@ -2928,7 +2933,7 @@ msgstr "Togol mod bebas gangguan."
msgid "Add a new scene."
msgstr "Tambah adegan baru."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Adegan"
@@ -3304,14 +3309,12 @@ msgid "Update Continuously"
msgstr "Kemas Kini Secara Berterusan"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Kemas Kini Apabila Diubah"
+msgstr "Kemas Kini Semua Perubahan"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Perubahan Bahan:"
+msgstr "Kemas Kini Perubahan Penting"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -5694,6 +5697,10 @@ msgid "Bake Lightmaps"
msgstr "Bake Lightmap"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Pilih fail lightmap bake:"
@@ -8151,7 +8158,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9065,6 +9077,11 @@ msgid "Select Another Theme Resource:"
msgstr "Cari Penggantian Sumber:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Sumber"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -9118,6 +9135,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Muatkan Lalai"
@@ -9135,7 +9164,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Ubah Jenis %s"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9832,18 +9872,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Ranting"
@@ -12425,6 +12453,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Tapis isyarat"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13753,6 +13786,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 025abad2dc..cca8d67ccf 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -1523,6 +1523,11 @@ msgstr "Last standard Bus oppsettet."
msgid "Create a new Bus Layout."
msgstr "Opprett et nytt Bus oppsett."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Åpne Audio Bus oppsett"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Ugyldig navn."
@@ -3014,7 +3019,7 @@ msgstr "Vis/skjul distraksjonsfri modus."
msgid "Add a new scene."
msgstr "Legg til ny scene."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scene"
@@ -5897,6 +5902,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Velg malfil"
@@ -8505,7 +8514,13 @@ msgid "Cinematic Preview"
msgstr "Lager Forhåndsvisning av Mesh"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Ikke tilgjengelig ved bruk av GLES2-opptegner."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9454,6 +9469,11 @@ msgstr "Fjern Ressurs"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Gi nytt navn til Ressurs"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Importer Tema"
@@ -9508,6 +9528,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Legg til Element"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Rediger Variabel:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Endre %s type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Last Standard"
@@ -9526,8 +9561,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Legg til Element"
+msgid "Base Type"
+msgstr "Endre %s type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -10281,18 +10326,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Treff:"
@@ -12995,6 +13028,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrer Filer..."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14386,6 +14424,9 @@ msgstr "Ugyldig navn."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index c8e602d3ce..37c534baf8 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -55,13 +55,14 @@
# naan <xlightfox@hotmail.com>, 2021.
# Tim Visee <tim+weblate@visee.me>, 2022.
# Ferhat Geçdoğan <ferhatgectao@gmail.com>, 2022.
+# Rémi Verschelde <remi@godotengine.org>, 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: 2022-01-30 07:16+0000\n"
-"Last-Translator: Ferhat Geçdoğan <ferhatgectao@gmail.com>\n"
+"PO-Revision-Date: 2022-02-20 11:48+0000\n"
+"Last-Translator: Rémi Verschelde <remi@godotengine.org>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
"Language: nl\n"
@@ -1535,6 +1536,11 @@ msgstr "Standaard audiobusindeling laden."
msgid "Create a new Bus Layout."
msgstr "Maak een nieuwe audiobusindeling."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Audiobusindeling openen"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Ongeldige naam."
@@ -2977,7 +2983,7 @@ msgstr "Afleidingsvrijemodus omschakelen."
msgid "Add a new scene."
msgstr "Nieuwe scène toevoegen."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scène"
@@ -5766,6 +5772,10 @@ msgid "Bake Lightmaps"
msgstr "Bak Lichtmappen"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Selecteer lightmap bake-bestand"
@@ -8309,7 +8319,13 @@ msgid "Cinematic Preview"
msgstr "Bioscoop Preview"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Niet beschikbaar bij gebruik van de GLES2 renderer."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8766,7 +8782,7 @@ msgstr "Animaties:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "New Animation"
-msgstr "Niewe animatie"
+msgstr "Nieuwe animatie"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed:"
@@ -9258,6 +9274,11 @@ msgstr "Bron verwijderen"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Bronnaam wijzigen"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Thema importeren"
@@ -9312,6 +9333,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Element toevoegen"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Zet variabele type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Verander basis type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Laad standaard"
@@ -9330,8 +9366,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Element toevoegen"
+msgid "Base Type"
+msgstr "Verander basis type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -10051,18 +10097,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Overeenkomsten:"
@@ -12827,6 +12861,11 @@ msgid "Stack Frames"
msgstr "Stack Frames"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filter tegels"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profiler"
@@ -14190,9 +14229,10 @@ msgstr "Ongeldige pakketnaam:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Ongeldige \"GodotPaymentV3\" module ingesloten in de projectinstelling "
-"\"android/modules\" (veranderd in Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/or.po b/editor/translations/or.po
index 3cea395fb0..d66d67b257 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -1435,6 +1435,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2784,7 +2788,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5426,6 +5430,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7851,7 +7859,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8726,6 +8739,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8772,6 +8789,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8788,7 +8817,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9464,18 +9503,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12029,6 +12056,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13312,6 +13343,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index 0117a72a86..db99c76ce6 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -16,12 +16,12 @@
# Karol Walasek <coreconviction@gmail.com>, 2016.
# Maksymilian Świąć <maksymilian.swiac@gmail.com>, 2017-2018.
# Mietek Szcześniak <ravaging@go2.pl>, 2016.
-# NeverK <neverkoxu@gmail.com>, 2018, 2019, 2020, 2021.
+# NeverK <neverkoxu@gmail.com>, 2018, 2019, 2020, 2021, 2022.
# Rafal Brozio <rafal.brozio@gmail.com>, 2016, 2019, 2020, 2021.
# Rafał Ziemniak <synaptykq@gmail.com>, 2017.
-# RM <synaptykq@gmail.com>, 2018, 2020.
+# RM <synaptykq@gmail.com>, 2018, 2020, 2022.
# Sebastian Krzyszkowiak <dos@dosowisko.net>, 2017.
-# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019, 2020.
+# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019, 2020, 2022.
# siatek papieros <sbigneu@gmail.com>, 2016.
# Zatherz <zatherz@linux.pl>, 2017, 2020, 2021.
# Tomek <kobewi4e@gmail.com>, 2018, 2019, 2020, 2021, 2022.
@@ -41,7 +41,7 @@
# Jan Ligudziński <jan.ligudzinski@gmail.com>, 2020, 2021.
# Adam Jagoda <kontakt@lukasz.xyz>, 2020.
# Filip Glura <mcmr.slendy@gmail.com>, 2020.
-# Roman Skiba <romanskiba0@gmail.com>, 2020.
+# Roman Skiba <romanskiba0@gmail.com>, 2020, 2022.
# Piotr Grodzki <ziemniakglados@gmail.com>, 2020.
# Dzejkop <jakubtrad@gmail.com>, 2020, 2021.
# Mateusz Grzonka <alpinus4@gmail.com>, 2020.
@@ -49,19 +49,21 @@
# vrid <patryksoon@live.com>, 2021.
# Suchy Talerz <kacperkubis06@gmail.com>, 2021.
# Bartosz Stasiak <bs97086@amu.edu.pl>, 2021.
-# Marek Malaria <to.tylko.dla.kont@gmail.com>, 2021.
-# Mateusz Żak <matisgramy@gmail.com>, 2021.
+# Marek Malaria <to.tylko.dla.kont@gmail.com>, 2021, 2022.
+# Mateusz Żak <matisgramy@gmail.com>, 2021, 2022.
# voltinus <voltinusmail@gmail.com>, 2021.
# Lech Migdal <lech.migdal@gmail.com>, 2022.
# Piotr <promantix@gmail.com>, 2022.
# Igor Kordiukiewicz <igorkordiukiewicz@gmail.com>, 2022.
+# lewando54 <lewando54@gmail.com>, 2022.
+# Katarzyna Twardowska <katarina.twardowska@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: 2022-01-26 19:55+0000\n"
-"Last-Translator: Igor Kordiukiewicz <igorkordiukiewicz@gmail.com>\n"
+"PO-Revision-Date: 2022-03-08 08:59+0000\n"
+"Last-Translator: Katarzyna Twardowska <katarina.twardowska@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
"Language: pl\n"
@@ -70,7 +72,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.11-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1525,6 +1527,11 @@ msgstr "Załaduj domyślny układ magistral."
msgid "Create a new Bus Layout."
msgstr "Utwórz nowy układ magistral."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Otwórz układ magistrali audio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Niewłaściwa nazwa."
@@ -2658,7 +2665,7 @@ msgstr "Zapisać zmiany w \"%s\" przed zamknięciem?"
#: editor/editor_node.cpp
msgid "%s no longer exists! Please specify a new save location."
-msgstr "%s już nie istnieje! Określ nową lokalizację zapisu."
+msgstr "%s nie istnieje! Proszę wybrać nową lokalizację zapisu."
#: editor/editor_node.cpp
msgid ""
@@ -2960,7 +2967,7 @@ msgstr "Tryb bez rozproszeń."
msgid "Add a new scene."
msgstr "Dodaj nową scenę."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scena"
@@ -3153,7 +3160,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Force Shader Fallbacks"
-msgstr ""
+msgstr "Opóźnienia wymuszania shaderów"
#: editor/editor_node.cpp
msgid ""
@@ -3164,6 +3171,12 @@ msgid ""
"Asynchronous shader compilation must be enabled in the project settings for "
"this option to make a difference."
msgstr ""
+"Gdy ta opcja jest włączona, shadery będą używane w ich zastępczej formie "
+"(albo widoczne poprzez ubershader, albo ukryte) przez cały czas działania.\n"
+"Jest to przydatne do sprawdzania wyglądu i wydajności fallbacków, które "
+"normalnie wyświetlane są krótko.\n"
+"Asynchroniczna kompilacja shaderów musi być włączona w ustawieniach "
+"projektu, aby ta opcja działała."
#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
@@ -3327,14 +3340,12 @@ msgid "Update Continuously"
msgstr "Aktualizuj ciągle"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Aktualizuj przy zmianie"
+msgstr "Aktualizuj wszystkie zmiany"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Zmiany materiału:"
+msgstr "Zaktualizuj istotne zmiany"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4107,6 +4118,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Te rozszerzenie pliku nie zostało rozpoznane przez edytor.\n"
+"Jeśli mimo tego chcesz zmienić jego nazwę, użyj menedżera plików swojego "
+"systemu operacyjnego.\n"
+"Po zmienieniu na nieznane rozszerzenie, plik nie będzie już widoczny w "
+"edytorze."
#: editor/filesystem_dock.cpp
msgid ""
@@ -5312,7 +5328,7 @@ msgstr "Tryb odtwarzania:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "AnimationTree"
-msgstr "Drzewo animacji"
+msgstr "DrzewoAnimacji"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
@@ -5325,11 +5341,11 @@ msgstr "Skala:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade In (s):"
-msgstr "Fade In (s):"
+msgstr "Zanikanie w (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade Out (s):"
-msgstr "Fade Out (s):"
+msgstr "Zanikanie z (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend"
@@ -5723,6 +5739,10 @@ msgid "Bake Lightmaps"
msgstr "Stwórz Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Wybierz plik wypalenia mapy światła:"
@@ -6036,9 +6056,8 @@ 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ł."
+msgstr "Alt+Przeciągnij: Skaluj zaznaczony węzeł."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
@@ -6324,11 +6343,11 @@ msgstr "Instancjonuj scenę tutaj"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr "Zwiększ krok siatki 2 razy"
+msgstr "Powiększ siatkę x2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
-msgstr "Zmniejsz krok siatki 2 razy"
+msgstr "Pomniejsz siatkę x2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan View"
@@ -6503,7 +6522,7 @@ msgstr "Płaskie 0"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat 1"
-msgstr "Flat 1"
+msgstr "Płaskie 1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
@@ -6567,7 +6586,7 @@ msgstr "Prawy klik, aby dodać punkt"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr "Wypal sondę GI"
+msgstr "Wygeneruj próbnik GI"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Gradient Edited"
@@ -6670,7 +6689,7 @@ msgstr "Siatka nie posiada powierzchni, z której można by utworzyć obrysy!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
-msgstr "Typ prymitywu siatki jest inny niż PRIMITIVE_TRIANGLES!"
+msgstr "Prymitywne elementy siatki nie sią PRIMITIVE_TRIANGLES!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
@@ -6686,7 +6705,7 @@ msgstr "Siatka"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
-msgstr "Utwórz statyczne ciało trójsiatki"
+msgstr "Stwórz statyczne ciało siatki trójkątów (Trimesh)"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6828,11 +6847,13 @@ msgstr "Aktualizuj ze sceny"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr "Nie ustawiono źródła siatki (i nie ma MultiMesh ustawionego w węźle)."
+msgstr ""
+"Nie ustawiono źródła siatki (i brak ustawionego zasobu MultiMesh w węźle)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr "Nie ustawiono źródła siatki (a MultiMesh nie posiada siatki)."
+msgstr ""
+"Nie ustawiono źródła siatki (i węzeł MultiMesh nie zawiera węzła Mesh)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (invalid path)."
@@ -6840,11 +6861,11 @@ msgstr "Źródło siatki jest niepoprawne (nieprawidłowa ścieżka)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr "Źródło siatki jest nieprawidłowe (nie jest MeshInstance)."
+msgstr "Źródło siatki jest niepoprawne (nie jest typu MeshInstance)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr "Źródło siatki jest nieprawidłowe (nie zawiera zasobu Mesh)."
+msgstr "Źródło siatki jest niepoprawne (nie zawiera zasobu Siatka (Mesh))."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No surface source specified."
@@ -8209,7 +8230,13 @@ msgid "Cinematic Preview"
msgstr "Podgląd kinowy"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Niedostępne dla renderera GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8383,9 +8410,8 @@ msgid "Increase Field of View"
msgstr "Zwiększ pole widzenia"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Reset Field of View to Default"
-msgstr "Resetuj do domyślnych"
+msgstr "Resetuj pole widzenia do domyślnych ustawień"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9106,6 +9132,11 @@ msgid "Select Another Theme Resource:"
msgstr "Wybierz inny zasób motywu:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Zmień nazwę Zasobu"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Inny motyw"
@@ -9115,22 +9146,19 @@ msgstr "Dodaj typ"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Filter the list of types or create a new custom type:"
-msgstr ""
+msgstr "Przefiltruj listę typów lub stwórz nowy, niestandardowy typ:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Available Node-based types:"
-msgstr "Dostępne profile:"
+msgstr "Dostępne typy oparte na węzłach:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Type name is empty!"
-msgstr "Nazwa pliku jest pusta."
+msgstr "Nazwa typu 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?"
+msgstr "Czy jesteś pewny że chcesz utworzyć pusty typ?"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
@@ -9157,6 +9185,20 @@ msgstr ""
"zaktualizuje te same właściwości we wszystkich innych StyleBoxach tego typu."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Dodaj typ elementu"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Ustaw typ zmiennej"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Zmień typ podstawowy"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Pokaż domyślne"
@@ -9173,8 +9215,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Zmień typ podstawowy"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9752,7 +9805,6 @@ msgid "TileSet"
msgstr "TileSet"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "No VCS plugins are available."
msgstr "Brak dostępnych dodatków VCS."
@@ -9764,53 +9816,48 @@ msgstr "Błąd"
msgid ""
"Remote settings are empty. VCS features that use the network may not work."
msgstr ""
+"Zdalne ustawienia są puste. Funkcje VCS, które korzystają z sieci mogą nie "
+"działać."
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "No commit message was provided."
-msgstr "Nie podano nazwy."
+msgstr "Nie podano treści opisu aktualizacji."
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit"
msgstr "Commit"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Staged Changes"
-msgstr "Zmiany shadera:"
+msgstr "Zmiany w poczekalni przed commitem"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Unstaged Changes"
-msgstr "Zmiany shadera:"
+msgstr "Zmiany poza poczekalnią przed commitem"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit:"
-msgstr "Commit"
+msgstr "Przydziel:"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Date:"
msgstr "Data:"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Subtitle:"
-msgstr "Poddrzewo"
+msgstr "Podtytuł:"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Do you want to remove the %s branch?"
-msgstr ""
+msgstr "Czy chcesz usunąć gałąź %s ?"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Do you want to remove the %s remote?"
-msgstr "Czy jesteś pewny że chcesz otworzyć więcej niż jeden projekt?"
+msgstr "Czy chcesz usunąć zdalne %s ?"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Apply"
-msgstr "Zastosuj reset"
+msgstr "Zastosuj"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control System"
@@ -9821,14 +9868,12 @@ msgid "Initialize"
msgstr "Inicjuj"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote Login"
-msgstr "Usuń punkt"
+msgstr "Login do Remote"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Username"
-msgstr "Zmień nazwę"
+msgstr "Użytkownik"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Password"
@@ -9852,117 +9897,91 @@ msgstr "Wybierz ścieżkę do prywatnego klucza SSH"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "SSH Passphrase"
-msgstr ""
+msgstr "Hasło-fraza SSH"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Detect new changes"
msgstr "Wykryj nowe zmiany"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Discard all changes"
-msgstr "Zamknąć i zapisać zmiany?"
+msgstr "Odrzuć wszystkie zmiany"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Stage all changes"
-msgstr "Zachowywanie lokalnych zmian..."
+msgstr "Wrzuć do kolejki wszystkie zmiany"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Unstage all changes"
-msgstr "Zmiany materiału:"
+msgstr "Wyrzuć z kolejki wszystkie zmiany"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit Message"
-msgstr "Commituj zmiany"
+msgstr "Opis zmian"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit Changes"
msgstr "Commituj zmiany"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit List"
-msgstr "Commit"
+msgstr "Lista commitów"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Commit list size"
-msgstr ""
+msgstr "Wielkość listy commitów"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Branches"
-msgstr "Pasujące:"
+msgstr "Gałęzie"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Create New Branch"
-msgstr "Utwórz nowy projekt"
+msgstr "Utwórz nową gałąź"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remove Branch"
-msgstr "Usuń ścieżkę animacji"
+msgstr "Usuń gałąź"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branch Name"
msgstr "Nazwa gałęzi"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remotes"
-msgstr "Zdalny"
+msgstr "Zdalne repozytoria"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Create New Remote"
-msgstr "Utwórz nowy projekt"
+msgstr "Utwórz nowe zdalne repozytorium"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remove Remote"
-msgstr "Usuń element"
+msgstr "Usuń zdalne repozytorium"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote Name"
-msgstr "Zdalny "
+msgstr "Nazwa zdalnego repozytorium"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Remote URL"
-msgstr "Zdalny "
+msgstr "URL zdalnego repozytorium"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Fetch"
-msgstr ""
+msgstr "Załaduj"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Pull"
-msgstr ""
+msgstr "Ściągnij"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Push"
-msgstr ""
+msgstr "Wrzuć"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Force Push"
-msgstr "Źródłowa siatka:"
+msgstr "Wrzuć na siłę"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Modified"
@@ -9982,22 +10001,19 @@ msgstr "Zmiana typu"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Unmerged"
-msgstr ""
+msgstr "Niezłączone"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "View:"
-msgstr "Widok"
+msgstr "Widok:"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Split"
-msgstr "Podziel Ścieżkę"
+msgstr "Rozdziel"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Unified"
-msgstr "Zmodyfikowany"
+msgstr "Ujednolicony"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "(GLES3 only)"
@@ -12143,6 +12159,10 @@ msgid ""
"To save this branch into its own scene, open the original scene, right click "
"on this branch, and select \"Save Branch as Scene\"."
msgstr ""
+"Nie można zapisać gałęzi, która jest dzieckiem już wcześniej zainicjowanej "
+"sceny.\n"
+"Aby zapisać tą gałąź do jej własnej sceny, otwórz oryginalną scenę, kliknij "
+"prawym przyciskiem myszy na tą gałąź i wybierz \"Zapisz gałąź jako scenę\"."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -12150,6 +12170,9 @@ msgid ""
"To save this branch into its own scene, open the original scene, right click "
"on this branch, and select \"Save Branch as Scene\"."
msgstr ""
+"Nie można zapisać gałęzi która jest częścią odziedziczonej sceny.\n"
+"Aby zapisać tą gałąź do jej własnej sceny, otwórz oryginalną scenę, kliknij "
+"prawym przyciskiem myszy na tę gałąź i wybierz \"Zapisz gałąź jako scenę\"."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12652,6 +12675,11 @@ msgid "Stack Frames"
msgstr "Ramki stosu"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtruj kafelki"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profiler"
@@ -12825,14 +12853,12 @@ msgid "Set Occluder Sphere Position"
msgstr "Ustaw pozycję sfery przesłaniacza"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Polygon Point Position"
-msgstr "Ustaw pozycję punktu portalu"
+msgstr "Ustaw położenie punktu poligonowego okludera"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Hole Point Position"
-msgstr "Ustaw pozycje punktu krzywej"
+msgstr "Ustawienie pozycji punktu otworu okludera"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -13545,30 +13571,28 @@ msgid "Edit Member"
msgstr "Edytuj członka"
#: modules/visual_script/visual_script_expression.cpp
-#, fuzzy
msgid "Expression"
-msgstr "Ustaw wyrażenie"
+msgstr "Wyrażenie"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Return"
msgstr "Wróć"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "Condition"
-msgstr "animacja"
+msgstr "Warunek"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "if (cond) is:"
-msgstr ""
+msgstr "if (warunek) is:"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "While"
-msgstr "Dopóki"
+msgstr "While"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "while (cond):"
-msgstr ""
+msgstr "while (warunek):"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator"
@@ -13576,7 +13600,7 @@ msgstr "Iterator"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "for (elem) in (input):"
-msgstr ""
+msgstr "for (element) in (wejście):"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
@@ -13595,76 +13619,68 @@ msgid "Sequence"
msgstr "Sekwencja"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "in order:"
-msgstr "Zmiana nazwy folderu:"
+msgstr "w kolejności:"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "Switch"
-msgstr "Pułap:"
+msgstr "Przełącznik"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "'input' is:"
-msgstr ""
+msgstr "'input' is:"
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "Type Cast"
-msgstr "Typy:"
+msgstr "Narzucenie typu"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Is %s?"
-msgstr ""
+msgstr "Czy jest %s?"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "On %s"
-msgstr ""
+msgstr "Na %s"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "On Self"
-msgstr "Pojedynczo"
+msgstr "Na samym sobie"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Subtract %s"
-msgstr "Przy znaku %s"
+msgstr "Odejmij %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Multiply %s"
-msgstr ""
+msgstr "Pomnóż %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Divide %s"
-msgstr ""
+msgstr "Dziel %s"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Mod %s"
-msgstr "Dodaj %s"
+msgstr "Modulo %s"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "ShiftLeft %s"
-msgstr "Ustaw %s"
+msgstr "PrzesuńWLewo %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "ShiftRight %s"
-msgstr ""
+msgstr "PrzesuńWPrawo %s"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "BitAnd %s"
-msgstr "Dodaj %s"
+msgstr "BitoweAnd %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "BitOr %s"
-msgstr ""
+msgstr "BitoweOr %s"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "BitXor %s"
-msgstr ""
+msgstr "BitoweXor %s"
#: modules/visual_script/visual_script_func_nodes.cpp
#: modules/visual_script/visual_script_nodes.cpp
@@ -13689,19 +13705,16 @@ msgid "Invalid index property name '%s' in node %s."
msgstr "Nieprawidłowy indeks we właściwości \"%s\" węzła %s."
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Emit %s"
-msgstr "Ustaw %s"
+msgstr "Emituj %s"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Function"
-msgstr "Funkcje"
+msgstr "Funkcja"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Compose Array"
-msgstr "Zmień rozmiar Tablicy"
+msgstr "Utwórz Tablicę"
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -13713,7 +13726,7 @@ msgstr ":nieprawidłowe argumenty: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "a if cond, else b"
-msgstr ""
+msgstr "a jeśli warunek, w przeciwnym razie b"
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
@@ -13724,64 +13737,52 @@ msgid "VariableSet not found in script: "
msgstr "Nie znaleziono VariableSet w skrypcie: "
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Preload"
-msgstr "Przeładuj"
+msgstr "Ładuj przed"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Index"
-msgstr "Indeks Z"
+msgstr "Weź indeks"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Set Index"
-msgstr "Indeks Z"
+msgstr "Ustaw indeks"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Global Constant"
-msgstr "Stała"
+msgstr "Stała globalna"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Class Constant"
-msgstr "Stała"
+msgstr "Stała klasy"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Basic Constant"
-msgstr "Stała"
+msgstr "Stała podstawowa"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Math Constant"
-msgstr "Stała"
+msgstr "Stała matematyczna"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Engine Singleton"
-msgstr "Włączony singleton GDNative"
+msgstr "Uzyskaj Singleton silnika"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Scene Node"
-msgstr "Węzeł Przewijania w Czasie"
+msgstr "Pozyskaj węzeł sceny"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Scene Tree"
-msgstr "Edycja drzewa sceny"
+msgstr "Pozyskaj drzewo sceny"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Self"
-msgstr "Pojedynczo"
+msgstr "Pozyskaj samego siebie"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "CustomNode"
-msgstr "Wytnij węzły"
+msgstr "NiestandardowyWęzeł"
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
@@ -13797,33 +13798,28 @@ msgstr ""
"całkowitą (seq out), lub tekstową (error)."
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "SubCall"
-msgstr "Wywołania"
+msgstr "PodWywołania"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Construct %s"
-msgstr "Stałe"
+msgstr "Zbuduj %s"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Get Local Var"
-msgstr "Użyj przestrzeni lokalnej"
+msgstr "Użyj zmiennej lokalnej"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Set Local Var"
-msgstr "Użyj przestrzeni lokalnej"
+msgstr "Ustaw zmienną lokalną"
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Action %s"
-msgstr "Akcja"
+msgstr "Akcja %s"
#: modules/visual_script/visual_script_nodes.cpp
msgid "Deconstruct %s"
-msgstr ""
+msgstr "Dekonstruuj %s"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search VisualScript"
@@ -13831,40 +13827,35 @@ msgstr "Przeszukaj VisualScript"
#: modules/visual_script/visual_script_yield_nodes.cpp
msgid "Yield"
-msgstr ""
+msgstr "Yield"
#: modules/visual_script/visual_script_yield_nodes.cpp
msgid "Wait"
msgstr "Czekaj"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "Next Frame"
-msgstr "Przesuń klatkę"
+msgstr "Następna klatka"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "Next Physics Frame"
-msgstr "Klatka fizyki %"
+msgstr "Następna klatka fizyki"
#: modules/visual_script/visual_script_yield_nodes.cpp
msgid "%s sec(s)"
-msgstr ""
+msgstr "%s sekund(s)"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "WaitSignal"
-msgstr "Sygnał"
+msgstr "SygnałOczekiwania"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "WaitNodeSignal"
-msgstr "Sygnał"
+msgstr "SygnałOczekiwaniaWęzła"
#: modules/visual_script/visual_script_yield_nodes.cpp
-#, fuzzy
msgid "WaitInstanceSignal"
-msgstr "Instancja"
+msgstr "SygnałOczekiwaniaInstancji"
#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
@@ -14002,9 +13993,10 @@ msgstr "Niepoprawna nazwa paczki:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Niepoprawny moduł \"GodotPaymentV3\" załączony w ustawieniu projektu "
-"\"android/modules\" (zmieniony w Godocie 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14263,166 +14255,167 @@ msgstr "Błąd uruchamiania serwera HTTP:"
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "Nie można uzyskać dostępu do systemu plików."
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "Nie udało się uzyskać hasha Info.plist."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "Nieprawidłowa nazwa projektu."
+msgstr "Nieprawidłowy plik Info.plist, brak nazwy pliku wykonywalnego."
#: platform/osx/export/codesign.cpp
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "Nieprawidłowy Info.plist, nie ma id pakietu."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "Nieprawidłowa geometria, nie można utworzyć wielokąta."
+msgstr "Nieprawidłowy Info.plist, nie można załadować."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "Nie można utworzyć katalogu."
+msgstr "Nie można utworzyć podkatalogu \"%s\"."
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
-msgstr ""
+msgstr "Nie udało się wypakować uszczuplonego pliku binarnego."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Niepoprawna ścieżka bazowa."
+msgstr "Niepoprawny format binarny."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "Już podpisane!"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to process nested resources."
-msgstr "Nie udało się wczytać zasobu."
+msgstr "Nie udało się przetworzyć zagnieżdżonych zasobów."
#: platform/osx/export/codesign.cpp
msgid "Failed to create _CodeSignature subfolder."
-msgstr ""
+msgstr "Nie udało się utworzyć podfolderu _CodeSignature."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to get CodeResources hash."
-msgstr "Nie udało się wczytać zasobu."
+msgstr "Nie udało się wczytać hasha CodeResources."
#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid entitlements file."
-msgstr "Niepoprawne rozszerzenie."
+msgstr "Nieprawidłowy plik uprawnień."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "Niepoprawne rozszerzenie."
+msgstr "Niepoprawny plik wykonywalny."
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
-msgstr ""
+msgstr "Nie można zmienić rozmiaru polecenia ładowania podpisu."
#: platform/osx/export/codesign.cpp
msgid "Failed to create fat binary."
-msgstr ""
+msgstr "Nie udało się stworzyć dużego pliku binarnego."
#: platform/osx/export/codesign.cpp
msgid "Unknown bundle type."
-msgstr ""
+msgstr "Nieznany typ pakietu."
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "Nieznany typ obiektu."
#: platform/osx/export/export.cpp
msgid ""
"Note: The notarization process generally takes less than an hour. When the "
"process is completed, you'll receive an email."
msgstr ""
+"Uwaga: Proces poświadczania trwa zazwyczaj mniej niż godzinę. Gdy proces "
+"zostanie zakończony, otrzymasz wiadomość e-mail."
#: platform/osx/export/export.cpp
msgid ""
"You can check progress manually by opening a Terminal and running the "
"following command:"
msgstr ""
+"Możesz sprawdzić postęp ręcznie, otwierając Terminal i wykonując następujące "
+"polecenie:"
#: platform/osx/export/export.cpp
msgid ""
"Run the following command to staple the notarization ticket to the exported "
"application (optional):"
msgstr ""
+"Uruchom następujące polecenie, aby przypiąć bilet notarialny do "
+"eksportowanej aplikacji (opcjonalnie):"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "Nie znaleziono ikon."
+msgstr "Nie znaleziono tożsamości."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Creating app bundle"
-msgstr "Tworzenie miniatury"
+msgstr "Tworzenie pakietu aplikacji"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"Nie udało się znaleźć szablonu APK do eksportu:\n"
-"%s"
+msgstr "Nie udało się znaleźć szablonu aplikacji do eksportu:"
#: platform/osx/export/export.cpp
msgid ""
"Relative symlinks are not supported on this OS, the exported project might "
"be broken!"
msgstr ""
+"Relatywne linki symboliczne nie są obsługiwane na tym systemie operacyjnym, "
+"wyeksportowany projekt może być uszkodzony!"
#: platform/osx/export/export.cpp
msgid ""
"Requested template binary '%s' not found. It might be missing from your "
"template archive."
msgstr ""
+"Nie znaleziono żądanego szablonu pliku binarnego '%s'. Być może brakuje go w "
+"Twoim archiwum szablonów."
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "Tworzenie PKG"
#: platform/osx/export/export.cpp
msgid ""
"Ad-hoc signed applications require the 'Disable Library Validation' "
"entitlement to load dynamic libraries."
msgstr ""
+"Aplikacje podpisane ad-hoc wymagają uprawnienia \"Wyłącz walidację "
+"biblioteki\" do ładowania bibliotek dynamicznych."
#: platform/osx/export/export.cpp
msgid "Code signing bundle"
-msgstr ""
+msgstr "Pakiet do podpisywania kodu"
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "Tworzenie DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
-msgstr ""
+msgstr "DMG podpisywania kodu"
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "Tworzenie ZIP"
#: platform/osx/export/export.cpp
msgid ""
"Notarization requires the app to be archived first, select the DMG or ZIP "
"export format instead."
msgstr ""
+"Poświadczenie wymaga wcześniejszego zarchiwizowania aplikacji, dlatego "
+"należy wybrać format eksportu DMG lub ZIP."
#: platform/osx/export/export.cpp
msgid "Sending archive for notarization"
-msgstr ""
+msgstr "Przesyłanie archiwum w celu poświadczenia"
#: platform/osx/export/export.cpp
msgid "Invalid bundle identifier:"
@@ -14433,31 +14426,33 @@ msgid ""
"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
"signing is limited to ad-hoc signature only."
msgstr ""
+"Ostrzeżenie: Wbudowane \"podpisywanie kodu\" jest wybrane w ustawieniach "
+"edytora. Podpisywanie kodu jest ograniczone tylko do podpisu ad-hoc."
#: platform/osx/export/export.cpp
msgid ""
"Warning: Xcode command line tools are not installed, using built-in "
"\"codesign\". Code signing is limited to ad-hoc signature only."
msgstr ""
+"Ostrzeżenie: Narzędzia wiersza poleceń Xcode nie są zainstalowane, zatem "
+"używany jest wbudowany \"codesign\". Podpisywanie kodu jest ograniczone "
+"tylko do podpisu ad-hoc."
#: platform/osx/export/export.cpp
msgid "Notarization: Notarization with an ad-hoc signature is not supported."
-msgstr ""
+msgstr "Poświadczenie: Poświadczenie z podpisem ad hoc nie jest obsługiwane."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Code signing is required for notarization."
-msgstr "Poświadczenie: wymagane podpisanie kodu."
+msgstr "Notaryzacja: Wymagane podpisanie kodu."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Hardened runtime is required for notarization."
-msgstr "Poświadczenie: wymagane wzmocnione środowisko wykonawcze."
+msgstr "Notaryzacja: Wymagane wzmocnione środowisko wykonawcze."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Timestamp runtime is required for notarization."
-msgstr "Poświadczenie: wymagane wzmocnione środowisko wykonawcze."
+msgstr "Notaryzacja: wymagane środowisko wykonawcze ze znacznikiem czasu."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
@@ -14472,63 +14467,86 @@ msgid ""
"Warning: Notarization is disabled. The exported project will be blocked by "
"Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Osztrzeżenie: Poświadczenie jest wyłączone. Wyeksportowany projekt zostanie "
+"zablokowany jeśli zostanie pobrany z nieznanego źródła."
#: platform/osx/export/export.cpp
msgid ""
"Code signing is disabled. The exported project will not run on Macs with "
"enabled Gatekeeper and Apple Silicon powered Macs."
msgstr ""
+"Podpisywanie kodu jest wyłączone. Wyeksportowany projekt nie będzie mógł "
+"zostać uruchomiony na komputerach Mac z włączonym Gatekeeperem i komputerach "
+"Mac napędzanych przez procesor Apple Silicon."
#: platform/osx/export/export.cpp
msgid ""
"Hardened Runtime is not compatible with ad-hoc signature, and will be "
"disabled!"
msgstr ""
+"Hardened Runtime nie jest kompatybilny z podpisem ad-hoc i zostanie "
+"wyłączony!"
#: platform/osx/export/export.cpp
msgid ""
"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
msgstr ""
+"Timestamping nie jest kompatybilny z podpisem ad-hoc i będzie wyłączony!"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Notarization is not supported from this OS. The exported project "
"will be blocked by Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Ostrzeżenie: Poświadczenia nie są obsługiwane przez ten system operacyjny. "
+"Wyeksportowany projekt zostanie zablokowany przez Gatekeeper, jeśli zostanie "
+"pobrany z nieznanego źródła."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
msgstr ""
+"Prywatność: Dostęp do mikrofonu jest włączony, ale opis jego użycia nie jest "
+"określony."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
msgstr ""
+"Prywatność: Dostęp do kamery jest włączony, ale opis jej użycia nie jest "
+"określony."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
msgstr ""
+"Prywatność: Dostęp do informacji o lokalizacji jest włączony, ale opis jej "
+"użycia nie jest określony."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
msgstr ""
+"Prywatność: Dostęp do kontaktów jest włączony, ale opis ich użycia nie jest "
+"określony."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
msgstr ""
+"Prywatność: Dostęp do kalendarza jest włączony, ale opis jego użycia nie "
+"jest określony."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Photo library access is enabled, but usage description is not "
"specified."
msgstr ""
+"Prywatność: Dostęp do galerii zdjęć jest włączony, ale opis jej użycia nie "
+"jest określony."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14595,21 +14613,20 @@ msgid ""
"The rcedit tool must be configured in the Editor Settings (Export > Windows "
"> Rcedit) to change the icon or app information data."
msgstr ""
+"Narzędzie rcedit musi być skonfigurowane w Ustawieniach edytora (Eksport > "
+"Windows > Rcedit), aby zmienić ikonę lub dane informacji o aplikacji."
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "Niepoprawna ścieżka."
+msgstr "Niepoprawna ścieżka ikony:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "Niepoprawne rozszerzenie."
+msgstr "Niepoprawna wersja pliku:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "Nieprawidłowy GUID produktu."
+msgstr "Nieprawidłowa wersja produktu:"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -14744,13 +14761,15 @@ msgstr ""
#: scene/2d/navigation_agent_2d.cpp
msgid "The NavigationAgent2D can be used only under a Node2D node."
-msgstr ""
+msgstr "NavigationAgent2D może zostać użyty tylko pod węzłem Node2D."
#: scene/2d/navigation_obstacle_2d.cpp
msgid ""
"The NavigationObstacle2D only serves to provide collision avoidance to a "
"Node2D object."
msgstr ""
+"NavigationObstacle2D służy jedynie do zapewnienia unikania kolizji obiektowi "
+"Node2D."
#: scene/2d/navigation_polygon.cpp
msgid ""
@@ -14776,14 +14795,13 @@ msgstr ""
"ParallaxBackground."
#: scene/2d/particles_2d.cpp
-#, fuzzy
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles2D\" toolbar option for this purpose."
msgstr ""
"Cząsteczki oparte o GPU są nieobsługiwane przez sterownik wideo GLES2.\n"
-"Użyj zamiast tego węzła CPUParticles2D. Możesz użyć do tego celu opcji "
+"Zamiast tego użyj węzła CPUParticles2D. Możesz użyć do tego celu opcji "
"\"Konwertuj na CPUParticles\"."
#: scene/2d/particles_2d.cpp
@@ -14794,6 +14812,12 @@ msgid ""
"You can use the \"Convert to CPUParticles2D\" toolbar option for this "
"purpose."
msgstr ""
+"W systemie macOS, renderowanie Particles2D jest znacznie wolniejsze niż "
+"CPUParticles2D z powodu sprzężenia zwrotnego transformacji, które jest "
+"implementowane na CPU zamiast na GPU.\n"
+"Rozważ użycie CPUParticles2D zamiast Particles2D, gdy używasz macOS.\n"
+"W tym celu można użyć opcji \"Konwertuj do CPUParticles2D\" na pasku "
+"narzędzi."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
@@ -15023,7 +15047,7 @@ msgstr "SpotLight z kątem szerszym niż 90 stopni nie może rzucać cieni."
#: scene/3d/navigation_agent.cpp
msgid "The NavigationAgent can be used only under a spatial node."
-msgstr ""
+msgstr "NavigationAgent może być stosowane wyłącznie pod węzłem przestrzennym."
#: scene/3d/navigation_mesh_instance.cpp
msgid ""
@@ -15038,6 +15062,8 @@ msgid ""
"The NavigationObstacle only serves to provide collision avoidance to a "
"spatial object."
msgstr ""
+"NavigationObstacle służy jedynie do zapewnienia unikania kolizji dla obiektu "
+"przestrzennego."
#: scene/3d/occluder.cpp
msgid "No shape is set."
@@ -15048,14 +15074,13 @@ msgid "Only uniform scales are supported."
msgstr "Obsługiwane są tylko jednolite skale."
#: scene/3d/particles.cpp
-#, fuzzy
msgid ""
"GPU-based particles are not supported by the GLES2 video driver.\n"
"Use the CPUParticles node instead. You can use the \"Convert to "
"CPUParticles\" toolbar option for this purpose."
msgstr ""
"Cząsteczki oparte o GPU są nieobsługiwane przez sterownik wideo GLES2.\n"
-"Użyj zamiast tego węzła CPUParticles. Możesz użyć do tego celu opcji "
+"Zamiast tego użyj węzła CPUParticles2D. Możesz użyć do tego celu opcji "
"\"Konwertuj na CPUParticles\"."
#: scene/3d/particles.cpp
@@ -15065,6 +15090,12 @@ msgid ""
"Consider using CPUParticles instead when targeting macOS.\n"
"You can use the \"Convert to CPUParticles\" toolbar option for this purpose."
msgstr ""
+"Na macOS, renderowanie Cząsteczek jest znacznie wolniejsze niż CPUParticles "
+"z powodu sprzężenia zwrotnego transformacji implementowanego na CPU zamiast "
+"na GPU.\n"
+"Rozważ użycie CPUParticles, gdy używasz macOS.\n"
+"Możesz użyć do tego celu opcji \"Konwertuj do CPUParticles\" na pasku "
+"narzędzi."
#: scene/3d/particles.cpp
msgid ""
@@ -15335,7 +15366,6 @@ msgid "This node has been deprecated. Use AnimationTree instead."
msgstr "Ten węzeł jest przestarzały. Zamiast tego użyj AnimationTree."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Apply color\n"
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 8dcc5099cb..0c9c84d7c9 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -1487,6 +1487,11 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Rename Function"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2878,7 +2883,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5619,6 +5624,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Slit th' Node"
@@ -8138,7 +8147,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9063,6 +9077,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Paste yer Node"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "th' Members:"
@@ -9111,6 +9130,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Edit yer Variable:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "th' Base Type:"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -9127,7 +9160,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "th' Base Type:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9863,18 +9907,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12511,6 +12543,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Paste yer Node"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13884,6 +13921,9 @@ msgstr "Yer unique name be evil."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/pt.po b/editor/translations/pt.po
index 94dc606a58..ce77d75470 100644
--- a/editor/translations/pt.po
+++ b/editor/translations/pt.po
@@ -1493,6 +1493,11 @@ msgstr "Carregar o Modelo predefinido de barramento."
msgid "Create a new Bus Layout."
msgstr "Criar um novo Modelo de Barramento."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Abrir Modelo de barramento de áudio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nome inválido."
@@ -2934,7 +2939,7 @@ msgstr "Alternar modo livre de distrações."
msgid "Add a new scene."
msgstr "Adicionar nova cena."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Cena"
@@ -5705,6 +5710,10 @@ msgid "Bake Lightmaps"
msgstr "Consolidar Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Selecionar ficheiro de consolidação de lightmap:"
@@ -8184,7 +8193,13 @@ msgid "Cinematic Preview"
msgstr "Pré-visualização Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Não disponível para o renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9079,6 +9094,11 @@ msgid "Select Another Theme Resource:"
msgstr "Selecionar Outro Recurso Tema:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Renomear recurso"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Outro Tema"
@@ -9127,6 +9147,20 @@ msgstr ""
"atualizar as mesmas em todos os StyleBoxes deste tipo."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Adicionar Tipo de Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Definir tipo de variável"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Mudar tipo base"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Predefinição"
@@ -9144,8 +9178,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Mudar tipo base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9847,18 +9892,6 @@ msgid "Commit list size"
msgstr "Gravar tamanho da lista"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Ramos"
@@ -12598,6 +12631,11 @@ msgid "Stack Frames"
msgstr "Empilhar Frames"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrar Tiles"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Analisador"
@@ -13917,9 +13955,10 @@ msgstr "Nome de pacote inválido:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Módulo inválido \"GodotPaymentV3\" incluído na configuração do projeto "
-"\"android/modules\" (alterado em Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 5d3f9ee158..410f57eb1f 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -9,7 +9,7 @@
# Breno Caldeira <breno.caldeira@gmail.com>, 2018.
# Francesco Perrotti-Garcia <fpg1503@gmail.com>, 2017.
# George Marques <george@gmarqu.es>, 2016.
-# Guilherme Felipe C G Silva <guilhermefelipecgs@gmail.com>, 2017, 2018, 2019.
+# Guilherme Felipe C G Silva <guilhermefelipecgs@gmail.com>, 2017, 2018, 2019, 2022.
# João Victor Lima <victordevtb@outlook.com>, 2018.
# João Vitor de Oliveira Carlos <lopogax@gmail.com>, 2018.
# Joaquim Ferreira <joaquimferreira1996@bol.com.br>, 2016, 2019, 2020.
@@ -139,8 +139,8 @@ 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: 2022-02-14 22:08+0000\n"
-"Last-Translator: PauloFRs <paulofr1@hotmail.com>\n"
+"PO-Revision-Date: 2022-03-09 08:53+0000\n"
+"Last-Translator: Guilherme Felipe C G Silva <guilhermefelipecgs@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -148,7 +148,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.11-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1607,6 +1607,11 @@ msgstr "Carregar o Layout de Canais padrão."
msgid "Create a new Bus Layout."
msgstr "Criar um novo Layout de Canais."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Abrir Layout de Canais de Áudio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nome Inválido."
@@ -2382,9 +2387,8 @@ msgid "Property:"
msgstr "Propriedade:"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Pin value"
-msgstr "Valor do pino"
+msgstr "Fixar valor"
#: editor/editor_inspector.cpp
msgid ""
@@ -3054,7 +3058,7 @@ msgstr "Alternar modo sem-distrações."
msgid "Add a new scene."
msgstr "Adicionar nova cena."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Cena"
@@ -5842,6 +5846,10 @@ msgid "Bake Lightmaps"
msgstr "Faça mapas de luz"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Selecione o arquivo de lightmap bake:"
@@ -8327,7 +8335,13 @@ msgid "Cinematic Preview"
msgstr "Pré-visualização Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Não disponível ao usar o renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9223,6 +9237,11 @@ msgid "Select Another Theme Resource:"
msgstr "Selecionar Outro Recurso de Tema:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Renomear Recurso"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Outro Tema"
@@ -9271,6 +9290,20 @@ msgstr ""
"atualizará as mesmas propriedades em todos os outros StyleBoxes deste tipo."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Adicionar Tipo de Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Definir o Tipo da Variável"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Mudar Tipo Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Padrão"
@@ -9288,8 +9321,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Mudar Tipo Base"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9990,18 +10034,6 @@ msgid "Commit list size"
msgstr "Confirmar tamanho da lista"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Ramos"
@@ -12749,6 +12781,11 @@ msgid "Stack Frames"
msgstr "Pilha de Quadros"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtros do tile"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Profilador"
@@ -14105,9 +14142,10 @@ msgstr "Nome de pacote inválido:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Módulo \"GodotPaymentV3\" inválido incluido na configuração de projeto "
-"\"android/modules\" (alterado em Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index 1c63a57d74..3b993cdffe 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -1495,6 +1495,11 @@ msgstr "Încarcă Schema de Pistă Audio implicită."
msgid "Create a new Bus Layout."
msgstr "Creaţi o Schemă nouă de Pistă Audio."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Deschide Schema Pistei Audio"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Nume nevalid."
@@ -2942,7 +2947,7 @@ msgstr "Comutează modul fără distrageri."
msgid "Add a new scene."
msgstr "Adaugă o nouă scenă."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scenă"
@@ -5737,6 +5742,10 @@ msgid "Bake Lightmaps"
msgstr "Procesează Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Selectare fișier șablon pentru harta de lumină:"
@@ -8343,7 +8352,12 @@ msgid "Cinematic Preview"
msgstr "Se creează Previzualizările Mesh-ului"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9290,6 +9304,11 @@ msgstr "Ștergere resursă"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Re-numire resursă"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Membri"
@@ -9344,6 +9363,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Adaugă Obiect"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Modificare tip bază:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Modificare tip bază:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Încărcați Implicit"
@@ -9362,8 +9396,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Adaugă Obiect"
+msgid "Base Type"
+msgstr "Modificare tip bază:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -10113,18 +10157,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Potriviri:"
@@ -12779,6 +12811,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrare Tiles"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14143,6 +14180,9 @@ msgstr "Nume pachet nevalid:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index 77e4143911..9a79eb258a 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -107,7 +107,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: 2022-02-10 07:50+0000\n"
+"PO-Revision-Date: 2022-02-20 00:54+0000\n"
"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
@@ -1575,6 +1575,11 @@ msgstr "Загрузить раскладку шины по умолчанию."
msgid "Create a new Bus Layout."
msgstr "Создать новую раскладку шины."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Открыть раскладку звуковой шины"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Недопустимое имя."
@@ -3021,7 +3026,7 @@ msgstr "Переключить режим без отвлечения."
msgid "Add a new scene."
msgstr "Добавить новую сцену."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Сцена"
@@ -3395,14 +3400,12 @@ msgid "Update Continuously"
msgstr "Непрерывное обновление"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Обновлять при изменениях"
+msgstr "Обновлять при любых изменениях"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Материалов изменено:"
+msgstr "Обновлять при важных изменениях"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4179,6 +4182,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Данное расширение файла не распознано редактором.\n"
+"Если вы всё равно хотите переименовать его, используйте файловый менеджер "
+"вашей операционной системы.\n"
+"После переименования в неизвестное расширение файл больше не будет "
+"отображаться в редакторе."
#: editor/filesystem_dock.cpp
msgid ""
@@ -5792,6 +5800,10 @@ msgid "Bake Lightmaps"
msgstr "Запекать карты освещения"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Выберите файл запекания карты освещения:"
@@ -8274,7 +8286,13 @@ msgid "Cinematic Preview"
msgstr "Кинематографический предварительный просмотр"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Недоступно при использовании рендерера GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9172,6 +9190,11 @@ msgid "Select Another Theme Resource:"
msgstr "Выбрать другой ресурс темы:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Переименовать ресурс"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Другая тема"
@@ -9221,6 +9244,20 @@ msgstr ""
"этого типа."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Добавить тип элемента"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Установить тип переменной"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Изменить базовый тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показать по умолчанию"
@@ -9239,8 +9276,19 @@ msgid "Override all default type items."
msgstr "Переопределить все элементы типа по умолчанию."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Добавить тип элемента"
+#, fuzzy
+msgid "Base Type"
+msgstr "Изменить базовый тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9942,18 +9990,6 @@ msgid "Commit list size"
msgstr "Размер списка коммитов"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Ветки"
@@ -12704,6 +12740,11 @@ msgid "Stack Frames"
msgstr "Стек"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Фильтр тайлов"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Профайлер"
@@ -12878,14 +12919,12 @@ msgid "Set Occluder Sphere Position"
msgstr "Задать положение сферы окклюдера"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Polygon Point Position"
-msgstr "Задать положение точки портала"
+msgstr "Задать положение точки полигона окклюдера"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Hole Point Position"
-msgstr "Установить положение точки кривой"
+msgstr "Задать положение точки отверстия окклюдера"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -14020,9 +14059,10 @@ msgstr "Недопустимое имя пакета:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Недопустимый модуль «GodotPaymentV3», включенный в настройку проекта "
-"«android/modules» (изменен в Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14282,166 +14322,167 @@ msgstr "Ошибка запуска HTTP-сервера:"
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "Не удаётся получить доступ к файловой системе."
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "Не удалось получить хеш Info.plist."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "Недопустимое имя проекта."
+msgstr "Недопустимый Info.plist, нет имени exe."
#: platform/osx/export/codesign.cpp
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "Недопустимый Info.plist, нет id пакета."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "Некорректная геометрия, нельзя создать полигональную сетку."
+msgstr "Недопустимый Info.plist, не удаётся загрузить."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "Невозможно создать папку."
+msgstr "Не удалось создать подпапку «%s»."
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
-msgstr ""
+msgstr "Не удалось распаковать двоичный файл."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Недопустимый базовый путь."
+msgstr "Недопустимый двоичный формат."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "Уже подписано!"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to process nested resources."
-msgstr "Не удалось загрузить ресурс."
+msgstr "Не удалось обработать вложенные ресурсы."
#: platform/osx/export/codesign.cpp
msgid "Failed to create _CodeSignature subfolder."
-msgstr ""
+msgstr "Не удалось создать подпапку _CodeSignature."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to get CodeResources hash."
-msgstr "Не удалось загрузить ресурс."
+msgstr "Не удалось получить хеш CodeResources."
#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid entitlements file."
-msgstr "Недопустимое расширение."
+msgstr "Недопустимый файл прав."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "Недопустимое расширение."
+msgstr "Недопустимый исполняемый файл."
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
-msgstr ""
+msgstr "Не удаётся изменить размер команды загрузки подписи."
#: platform/osx/export/codesign.cpp
msgid "Failed to create fat binary."
-msgstr ""
+msgstr "Не удалось создать большой двоичный файл."
#: platform/osx/export/codesign.cpp
msgid "Unknown bundle type."
-msgstr ""
+msgstr "Неизвестный тип пакета."
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "Неизвестный тип объекта."
#: platform/osx/export/export.cpp
msgid ""
"Note: The notarization process generally takes less than an hour. When the "
"process is completed, you'll receive an email."
msgstr ""
+"Примечание: Процесс подтверждения обычно занимает менее часа. Когда процесс "
+"завершится, вы получите электронное письмо."
#: platform/osx/export/export.cpp
msgid ""
"You can check progress manually by opening a Terminal and running the "
"following command:"
msgstr ""
+"Вы можете проверить ход выполнения вручную, открыв терминал и выполнив "
+"следующую команду:"
#: platform/osx/export/export.cpp
msgid ""
"Run the following command to staple the notarization ticket to the exported "
"application (optional):"
msgstr ""
+"Выполните следующую команду, чтобы прикрепить заявку на подтверждение к "
+"экспортированному приложению (необязательно):"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "Иконки не найдены."
+msgstr "Identity не найдена."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Creating app bundle"
-msgstr "Создание эскизов"
+msgstr "Создание пакета приложения"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"Не удалось найти шаблон APK для экспорта:\n"
-"%s"
+msgstr "Не удалось найти шаблон приложения для экспорта:"
#: platform/osx/export/export.cpp
msgid ""
"Relative symlinks are not supported on this OS, the exported project might "
"be broken!"
msgstr ""
+"Относительные символические ссылки не поддерживаются в этой ОС, "
+"экспортируемый проект может быть повреждён!"
#: platform/osx/export/export.cpp
msgid ""
"Requested template binary '%s' not found. It might be missing from your "
"template archive."
msgstr ""
+"Запрошенный двоичный файл шаблона «%s» не найден. Он может отсутствовать в "
+"вашем архиве шаблонов."
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "Создание PKG"
#: platform/osx/export/export.cpp
msgid ""
"Ad-hoc signed applications require the 'Disable Library Validation' "
"entitlement to load dynamic libraries."
msgstr ""
+"Для подписанных ad-hoc приложений требуется право «Отключить проверку "
+"библиотеки» для загрузки динамических библиотек."
#: platform/osx/export/export.cpp
msgid "Code signing bundle"
-msgstr ""
+msgstr "Подпись кода пакета"
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "Создание DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
-msgstr ""
+msgstr "Подпись кода DMG"
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "Создание ZIP"
#: platform/osx/export/export.cpp
msgid ""
"Notarization requires the app to be archived first, select the DMG or ZIP "
"export format instead."
msgstr ""
+"Подтверждение требует, чтобы приложение было сначала архивировано, вместо "
+"этого выберите формат экспорта DMG или ZIP."
#: platform/osx/export/export.cpp
msgid "Sending archive for notarization"
-msgstr ""
+msgstr "Отправка архива для подтверждения"
#: platform/osx/export/export.cpp
msgid "Invalid bundle identifier:"
@@ -14452,31 +14493,35 @@ msgid ""
"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
"signing is limited to ad-hoc signature only."
msgstr ""
+"Предупреждение: В настройках редактора выбран встроенный «codesign». "
+"Подписание кода ограничено только подписью ad-hoc."
#: platform/osx/export/export.cpp
msgid ""
"Warning: Xcode command line tools are not installed, using built-in "
"\"codesign\". Code signing is limited to ad-hoc signature only."
msgstr ""
+"Предупреждение: инструменты командной строки Xcode не установлены, "
+"используется встроенный «codesign». Подписание кода ограничено только "
+"подписью ad-hoc."
#: platform/osx/export/export.cpp
msgid "Notarization: Notarization with an ad-hoc signature is not supported."
-msgstr ""
+msgstr "Подтверждение: Подтверждение подписью ad-hoc не поддерживается."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Code signing is required for notarization."
-msgstr "Предупреждение: требуется подписание кода."
+msgstr "Подтверждение: для подтверждения требуется подпись кода."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Hardened runtime is required for notarization."
-msgstr "Предупреждение: требуется усиленный рантайм."
+msgstr ""
+"Подтверждение: для подтверждения требуется защищённая среда выполнения."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Timestamp runtime is required for notarization."
-msgstr "Предупреждение: требуется усиленный рантайм."
+msgstr ""
+"Подтверждение: для подтверждения требуется метка времени среды выполнения."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
@@ -14491,63 +14536,84 @@ msgid ""
"Warning: Notarization is disabled. The exported project will be blocked by "
"Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Предупреждение: Подтверждение отключено. Экспортированный проект будет "
+"заблокирован Gatekeeper, если он загружен из неизвестного источника."
#: platform/osx/export/export.cpp
msgid ""
"Code signing is disabled. The exported project will not run on Macs with "
"enabled Gatekeeper and Apple Silicon powered Macs."
msgstr ""
+"Подписание кода отключено. Экспортированный проект не будет работать на "
+"компьютерах Mac с включённым Gatekeeper и компьютерах Mac с процессором "
+"Apple Silicon."
#: platform/osx/export/export.cpp
msgid ""
"Hardened Runtime is not compatible with ad-hoc signature, and will be "
"disabled!"
msgstr ""
+"Защищённая среда выполнения несовместима с подписью ad-hoc и будет отключена!"
#: platform/osx/export/export.cpp
msgid ""
"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
-msgstr ""
+msgstr "Временные метки не совместимы с подписью ad-hoc и будут отключены!"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Notarization is not supported from this OS. The exported project "
"will be blocked by Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Предупреждение: Подтверждение не поддерживается в этой ОС. Экспортированный "
+"проект будет заблокирован Gatekeeper, если он загружен из неизвестного "
+"источника."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
msgstr ""
+"Конфиденциальность: Доступ к микрофону включён, но описание использования не "
+"указано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
msgstr ""
+"Конфиденциальность: Доступ к камере включён, но описание использования не "
+"указано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
msgstr ""
+"Конфиденциальность: Доступ к информации о местоположении включён, но "
+"описание использования не указано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
msgstr ""
+"Конфиденциальность: Доступ к адресной книге включён, но описание "
+"использования не указано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
msgstr ""
+"Конфиденциальность: Доступ к календарю включён, но описание использования не "
+"указано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Photo library access is enabled, but usage description is not "
"specified."
msgstr ""
+"Конфиденциальность: Доступ к библиотеке фотографий включён, но описание "
+"использования не указано."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14606,21 +14672,20 @@ msgid ""
"The rcedit tool must be configured in the Editor Settings (Export > Windows "
"> Rcedit) to change the icon or app information data."
msgstr ""
+"Инструмент rcedit должен быть настроен в Настройках редактора (Export > "
+"Windows > Rcedit) для изменения значка или информационных данных приложения."
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "Недопустимый путь."
+msgstr "Недопустимый путь к иконке:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "Недопустимое расширение."
+msgstr "Недопустимая версия файла:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "Неверный GUID продукта."
+msgstr "Недопустимая версия продукта:"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -15360,14 +15425,13 @@ msgid "This node has been deprecated. Use AnimationTree instead."
msgstr "Этот узел был удален. Вместо этого используйте AnimationTree."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Apply color\n"
"RMB: Remove preset"
msgstr ""
"Цвет: #%s\n"
-"ЛКМ: Установить цвет\n"
+"ЛКМ: Применить цвет\n"
"ПКМ: Удалить пресет"
#: scene/gui/color_picker.cpp
diff --git a/editor/translations/si.po b/editor/translations/si.po
index 178bcfdfad..e875e8e5bf 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -1463,6 +1463,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2819,7 +2823,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5480,6 +5484,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7928,7 +7936,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8815,6 +8828,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8862,6 +8879,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8878,7 +8907,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9566,18 +9605,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12154,6 +12181,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13458,6 +13489,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index d502613ca1..2f561af326 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -1488,6 +1488,11 @@ msgstr "Načítať základný Bus Layout."
msgid "Create a new Bus Layout."
msgstr "Vytvoriť nový Bus Layout."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Otvoriť Audio Bus Layout"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Neplatný Názov."
@@ -2932,7 +2937,7 @@ msgstr "Prepnúť režim bez rozptyľovania."
msgid "Add a new scene."
msgstr "Pridať novú scénu."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scéna"
@@ -5717,6 +5722,10 @@ msgid "Bake Lightmaps"
msgstr "Bake Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Vybrať Súbor Šablóny"
@@ -8258,7 +8267,12 @@ msgid "Cinematic Preview"
msgstr "Filmové Predzobrazenie"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9197,6 +9211,11 @@ msgstr "Hľadať Náhradný Zdroj:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Prostriedok"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Súbor:"
@@ -9249,6 +9268,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Zmeniť %s Typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Zmeniť %s Typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Načítať predvolené"
@@ -9267,7 +9300,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Zmeniť %s Typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -10022,18 +10066,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Zhody:"
@@ -12678,6 +12710,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filter:"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14043,6 +14080,9 @@ msgstr "Nesprávna veľkosť písma."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index 551b2a5c91..baa466cb84 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -1549,6 +1549,11 @@ msgstr "Naloži prevezeto Postavitev Vodila."
msgid "Create a new Bus Layout."
msgstr "Ustvari novo Postavitev Vodila."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Odpri Zvočno Vodilo"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Neveljavno ime."
@@ -3036,7 +3041,7 @@ msgstr "Preklop način pisanja brez motenj."
msgid "Add a new scene."
msgstr "Dodaj nov Prizor."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Prizor"
@@ -5922,6 +5927,10 @@ msgid "Bake Lightmaps"
msgstr "Zapeči Svetlobne karte"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Izberi datoteko predloge"
@@ -8525,7 +8534,12 @@ msgid "Cinematic Preview"
msgstr "Ustvari Predogled Modela"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9477,6 +9491,11 @@ msgstr "Iskanje Nadomestnih Virov:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Viri"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Člani"
@@ -9528,6 +9547,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Nastavite Tip Spremenljivke"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Spremeni Osnovni Tip"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Naložite Prevzeto"
@@ -9545,7 +9578,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Spremeni Osnovni Tip"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -10306,18 +10350,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Zadetki:"
@@ -13018,6 +13050,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtriraj datoteke..."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14399,6 +14436,9 @@ msgstr "Neveljavno ime."
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index b4115a9c60..83fbc22055 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -1485,6 +1485,11 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Faqosja e Editorit"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Emër i palejuar."
@@ -2975,7 +2980,7 @@ msgstr "Ndrysho metodën pa shpërqëndrime."
msgid "Add a new scene."
msgstr "Shto një skenë të re."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Skenë"
@@ -5774,6 +5779,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Zgjidh skedarin e shabllonit"
@@ -8263,7 +8272,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9191,6 +9205,11 @@ msgid "Select Another Theme Resource:"
msgstr "Kërko Resursin Zëvendësues:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Resursi"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -9241,6 +9260,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Ndrysho Tipin e %s"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Ndrysho Tipin e %s"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Ngarko të Parazgjedhur"
@@ -9259,7 +9292,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Ndrysho Tipin e %s"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9967,18 +10011,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Përputhjet:"
@@ -12619,6 +12651,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtro Skedarët..."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13960,6 +13997,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index fab8794167..b536e1999d 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -1607,6 +1607,11 @@ msgstr "Учитај уобичајен бас распоред."
msgid "Create a new Bus Layout."
msgstr "Направи нови бас распоред."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Отвори распоред звучног баса"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Неважеће име."
@@ -3157,7 +3162,7 @@ msgstr "Укљ./Искљ. режим без сметње."
msgid "Add a new scene."
msgstr "Додај нову сцену."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Сцена"
@@ -6190,6 +6195,10 @@ msgid "Bake Lightmaps"
msgstr "Изпеци МапеСенчења"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Одабери шаблонску датотеку"
@@ -8961,8 +8970,13 @@ msgid "Cinematic Preview"
msgstr "Направи приказ мрежа"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
-msgid "Not available when using the GLES2 renderer."
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Недоступно кад користиш GLES2 изцртавање."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9955,6 +9969,11 @@ msgstr "Обриши ресурс"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Преименуј ресурс"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Увези тему"
@@ -10009,6 +10028,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Додај ствар"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Постави Врсту Променљиве"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Измени уобичајен тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Учитај уобичајено"
@@ -10027,8 +10061,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Додај ствар"
+msgid "Base Type"
+msgstr "Промени Тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -10850,18 +10894,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Подударање:"
@@ -14106,6 +14138,11 @@ msgstr "Наслага Фрејмова"
#: editor/script_editor_debugger.cpp
#, fuzzy
+msgid "Filter stack variables"
+msgstr "Филтрирај датотеке..."
+
+#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Profiler"
msgstr "Осматрач"
@@ -15630,6 +15667,9 @@ msgstr "Неважеће име паковања:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index e4a6a62ec9..fb9a577739 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -6,13 +6,14 @@
# BLu <blmasfon@gmail.com>, 2018.
# Vojislav Bajakic <ch3d4.ns@gmail.com>, 2018.
# LT <lakizvezdas@gmail.com>, 2019.
+# Marko Mihajlović <creationsmarko@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: 2019-07-29 19:21+0000\n"
-"Last-Translator: LT <lakizvezdas@gmail.com>\n"
+"PO-Revision-Date: 2022-02-26 10:27+0000\n"
+"Last-Translator: Marko Mihajlović <creationsmarko@gmail.com>\n"
"Language-Team: Serbian (latin) <https://hosted.weblate.org/projects/godot-"
"engine/godot/sr_Latn/>\n"
"Language: sr_Latn\n"
@@ -21,78 +22,78 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 3.8-dev\n"
+"X-Generator: Weblate 4.11.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
+msgstr "Nevažeći tip argumenta za convert(), koristi TYPE_* konstante."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Očekivana niska dužine 1 (karakter)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "Nema dovoljno bajtova za dekodiranje bajtova, ili nevažeći format."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr ""
+msgstr "Nevažeći unos %i (nije prenesen) u izrazu"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr ""
+msgstr "self ne može biti korišćen jer je instanca null (nije prosledjena)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr ""
+msgstr "Nedozvoljen operand do operatora %s, %s i %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr ""
+msgstr "Nedozvoljen indeks tipa %s za bazu tipa %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr ""
+msgstr "Nedozvoljeno imenovan indeks '%s' za bazu tipa %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr ""
+msgstr "Neispravni argumenti za konstrukciju '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr ""
+msgstr "Pri pozivu '%s':"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "Gib"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "Tib"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
@@ -120,7 +121,7 @@ msgstr "Dodaj ključ ovde"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "Dupliraj Selektovane Ključeve"
+msgstr "Dupliraj Obeležene Ključeve"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
@@ -136,56 +137,51 @@ msgstr "Pomeri Bezier Tačke"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Animacija Uduplaj Ključeve"
+msgstr "Anim Dupliraj Ključeve"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Animacija Obriši Ključeve"
+msgstr "Anim Obriši Ključeve"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "Animacija Promjeni Vrijeme Ključnog Kadra"
+msgstr "Animacija Promeni Vreme Ključnog Kadra"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "Animacija Promjeni Tranziciju"
+msgstr "Anim Promeni Prelaz"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "Animacija Promjeni Transformaciju"
+msgstr "Anim Promeni Transformaciju"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "Animacija Promjeni Vrijednost Ključnog Kadra"
+msgstr "Animacija Promeni Vrednost Ključnog Kadra"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr "Animacija Promjeni Poziv"
+msgstr "Anim Promjeni Poziv"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Time"
-msgstr "Animacija Promjeni Vrijeme Ključnog Kadra"
+msgstr "Anim Promeni Vremena Ključnih Kadrova"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transition"
-msgstr "Animacija Promjeni Tranziciju"
+msgstr "Anim Promeni Tranzicije"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transform"
-msgstr "Animacija Promjeni Transformaciju"
+msgstr "Anim Promeni Transformacije"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Value"
-msgstr "Animacija Promjeni Vrijednost Ključnog Kadra"
+msgstr "Anim Promeni Vrednost Ključnih Kadrova"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Call"
-msgstr "Animacija Promjeni Poziv"
+msgstr "Anim Promeni Pozive"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
@@ -194,52 +190,50 @@ msgstr "Promeni Dužinu Animacije"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Promeni Ponavljanje Animacije"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr ""
+msgstr "Osobine Trake"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
-msgstr ""
+msgstr "3D Transformacija trake"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr ""
+msgstr "Traka Poziva Metoda"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "Traka Bezier krive"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
-msgstr "Audio Plejbek Traka"
+msgstr "Audio Reprodukciona Traka"
#: editor/animation_track_editor.cpp
msgid "Animation Playback Track"
-msgstr "Animacija Plejbek Traka"
+msgstr "Animacija Reprodukciona Traka"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr "Dužina Animacije (frames)"
+msgstr "Dužina Animacije (frejmova)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr "Dužina Animacije (secunde)"
+msgstr "Dužina animacije (sekunde)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track"
msgstr "Dodaj Traku"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
-msgstr ""
+msgstr "Ponavljanje Animacije"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Functions:"
msgstr "Funkcije:"
@@ -248,34 +242,32 @@ msgid "Audio Clips:"
msgstr "Audio Klipovi:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Clips:"
msgstr "Anim Klipovi:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
-msgstr ""
+msgstr "Izmeni Mesto Trake"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr ""
+msgstr "Uključi/isključi ovu traku."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "Način Ažuriranja (Kako je ova osobina postavljena)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr ""
+msgstr "Način Interpolacije"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
+msgstr "Režim Umotanog Ponavljanja (Meša kraj sa početkom pri ponavljanju)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Remove this track."
-msgstr "Odstrani Kanal Animacije"
+msgstr "Ukloni ovu traku."
#: editor/animation_track_editor.cpp
msgid "Time (s): "
@@ -283,7 +275,7 @@ msgstr "Vreme (s): "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
-msgstr ""
+msgstr "Umogući/Onemogući Traku"
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -299,12 +291,11 @@ msgstr "Okidač"
#: editor/animation_track_editor.cpp
msgid "Capture"
-msgstr ""
+msgstr "Ulovi"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Nearest"
-msgstr "Najbliže"
+msgstr "Najbliža"
#: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp
#: editor/property_editor.cpp
@@ -313,62 +304,57 @@ msgstr "Linearna"
#: editor/animation_track_editor.cpp
msgid "Cubic"
-msgstr ""
+msgstr "Kubno"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr ""
+msgstr "Ograniči Interp Ponavljanja"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr ""
+msgstr "Interp Umotanog Ponavljanja"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr ""
+msgstr "Unesi Ključ"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Duplicate Key(s)"
-msgstr "Dupliraj Ključeve"
+msgstr "Dupliraj Ključ(eve)"
#: editor/animation_track_editor.cpp
msgid "Add RESET Value(s)"
-msgstr ""
+msgstr "Dodaj RESET Vrednost(i)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Key(s)"
-msgstr "Obriši Ključeve"
+msgstr "Obriši Ključ(eve)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Update Mode"
-msgstr "Promijeni Dužinu Animacije"
+msgstr "Promijeni Način Ažuriranja Animacije"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Interpolation Mode"
-msgstr "Promijeni Dužinu Animacije"
+msgstr "Promeni način Interpolacije Animacije"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Loop Mode"
-msgstr "Optimizuj Animaciju"
+msgstr "Promeni Način Ponavljanja Animacije"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
-msgstr "Odstrani Kanal Animacije"
+msgstr "Ukloni Anim Traku"
#. TRANSLATORS: %s will be replaced by a phrase describing the target of track.
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr "Napravi Novi kanal za %s i dodaj ključ?"
+msgstr "Napravi NOVU traku za %s i dodaj ključ?"
#: editor/animation_track_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr "Napravi %d novih kanala i dodaj ključeve?"
+msgstr "Napravi %d NOVIH traka i dodaj ključeve?"
#: editor/animation_track_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
@@ -385,52 +371,51 @@ msgstr "Napravi"
#: editor/animation_track_editor.cpp
msgid "Anim Insert"
-msgstr "Animacija Umetni"
+msgstr "Anim Ubaci"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
msgid "node '%s'"
-msgstr ""
+msgstr "čvor '%s'"
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "animation"
-msgstr "Optimizuj Animaciju"
+msgstr "Animacija"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
-msgstr ""
+msgstr "Plejer Animacija ne može animirati sebe, samo druge plejere."
#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
#: editor/animation_track_editor.cpp
msgid "property '%s'"
-msgstr ""
+msgstr "Osobina '%s'"
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
-msgstr "Animacija Napravi i Dodaj"
+msgstr "Anim Napravi i Ubaci"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr "Animacija Dodaj kanal i ključ"
+msgstr "Anim Ubaci Traku i Ključ"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Key"
-msgstr "Animacija dodaj ključ"
+msgstr "Anim Ubaci Ključ"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Step"
-msgstr "Počisti Animaciju"
+msgstr "Promeni Korake Animacije"
#: editor/animation_track_editor.cpp
msgid "Rearrange Tracks"
-msgstr ""
+msgstr "Rasporedi Trake"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
msgstr ""
+"Transformacione trake primenjuju se samo na Prostorno-baziranim čvorovima."
#: editor/animation_track_editor.cpp
msgid ""
@@ -439,66 +424,67 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
+"Audio trake mogu da upute samo na čvorove tipa:\n"
+"-AudioStreamPlayer\n"
+"-AudioStreamPlayer2D\n"
+"-AudioStreamPlayer3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
+msgstr "Animacione trake mogu da upute samo na AnimationPlayer čvorove."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr ""
+msgstr "Nije moguće dodati novu traku bez korena"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "Nevažeća traka za Bezier (nema pogodnih pod-osobina)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Bezier Track"
-msgstr "Dodaj Bezier Kanal"
+msgstr "Dodaj Bezier Traku"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr ""
+msgstr "Mesto trake je nevažeće, ne može se dodati ključ."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr ""
+msgstr "Traka nije Prostornog tipa, ne može se dodati ključ"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Transform Track Key"
-msgstr "Animacija Dodaj kanal i ključ"
+msgstr "Dodaj ključ transformacione trake"
#: editor/animation_track_editor.cpp
msgid "Add Track Key"
-msgstr "Dodaj Kljuc Kanal"
+msgstr "Dodaj Kljuc u Traku"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr ""
+msgstr "Mesto trake je nevažeće, ne može se dodati ključ metode."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Method Track Key"
-msgstr "Animacija Dodaj kanal i ključ"
+msgstr "Dodaj Ključ Metodne Trake"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
-msgstr ""
+msgstr "Metod nije nađen u objektu: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
-msgstr "Animacija Pomjeri Ključeve"
+msgstr "Anim Pomeri Ključeve"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
-msgstr ""
+msgstr "Klipbord je prazan!"
#: editor/animation_track_editor.cpp
msgid "Paste Tracks"
-msgstr ""
+msgstr "Zalepi Trake"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
@@ -507,12 +493,11 @@ msgstr "Animacija Skaliraj Ključeve"
#: editor/animation_track_editor.cpp
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
-msgstr ""
+msgstr "Ova opcija ne radi za Bezier obradu, jer je jedna traka."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Add RESET Keys"
-msgstr "Animacija Skaliraj Ključeve"
+msgstr "Anim Dodaj RESET Ključeve"
#: editor/animation_track_editor.cpp
msgid ""
@@ -526,39 +511,48 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"Ova animacija pripada uvezenoj sceni, pa promene na uvezenim trakama neće "
+"biti sačuvane.\n"
+"\n"
+"Da omogućiš sposobnost dodavanja prilagođenih traka, uputi se ka uvoznim "
+"podešavanjima scene i postavi\n"
+"\"Animacija > Skladište\" u \"Datoteke\", omogući \"Animacija > Zadrži "
+"Prilagođene Trake\", zatim ponovo uvezi.\n"
+"Alternativno, koristi uvozna podešavanja koja uvoze animacije u zasebne "
+"datoteke."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr ""
+msgstr "Upozorenje: Obrađivanje uvezene animacije"
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr ""
+msgstr "Izaberi AnimationPlayer čvor da bi napravio i uredio animacije."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
-msgstr ""
+msgstr "Prikaži samo trake od čvorova koji su označeni u stablu."
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
-msgstr ""
+msgstr "Grupiši trake po čvoru ili ih prikaži kao običnu listu."
#: editor/animation_track_editor.cpp
msgid "Snap:"
-msgstr ""
+msgstr "Kačenje:"
#: editor/animation_track_editor.cpp
msgid "Animation step value."
-msgstr ""
+msgstr "Vrednost koraka animacije."
#: editor/animation_track_editor.cpp
msgid "Seconds"
-msgstr ""
+msgstr "Sekunde"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: editor/animation_track_editor.cpp editor/editor_plugin_settings.cpp
#: editor/editor_resource_picker.cpp
@@ -569,15 +563,15 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/property_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit"
-msgstr ""
+msgstr "Uredi"
#: editor/animation_track_editor.cpp
msgid "Animation properties."
-msgstr ""
+msgstr "Osobine animacije."
#: editor/animation_track_editor.cpp
msgid "Copy Tracks"
-msgstr ""
+msgstr "Kopiraj Trake"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
@@ -594,26 +588,23 @@ msgstr "Uduplaj Selekciju"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr ""
+msgstr "Dupliraj Transponovanu"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Selection"
-msgstr "Uduplaj Selekciju"
+msgstr "Ukloni oznaku"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Next Step"
-msgstr "Otiđi Na Sljedeći Korak"
+msgstr "Idi na Sledeći Korak"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Previous Step"
-msgstr "Otiđi Na Prethodni Korak"
+msgstr "Idi na Prethodni Korak"
#: editor/animation_track_editor.cpp
msgid "Apply Reset"
-msgstr ""
+msgstr "Primeni Reset"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -625,64 +616,63 @@ msgstr "Počisti Animaciju"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
-msgstr ""
+msgstr "Izaberi čvor koji će biti animiran:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
-msgstr ""
+msgstr "Koristi Bezier krive"
#: editor/animation_track_editor.cpp
msgid "Create RESET Track(s)"
-msgstr ""
+msgstr "Napravi RESET Traku(ke)"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr ""
+msgstr "Anim. Optimizator"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
-msgstr ""
+msgstr "Max. Linearna Greška:"
#: editor/animation_track_editor.cpp
msgid "Max. Angular Error:"
-msgstr ""
+msgstr "Max. Ugaona Greška:"
#: editor/animation_track_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr ""
+msgstr "Max Ugao Koji Se Može Optimizovati:"
#: editor/animation_track_editor.cpp
msgid "Optimize"
-msgstr ""
+msgstr "Optimizuj"
#: editor/animation_track_editor.cpp
msgid "Remove invalid keys"
-msgstr ""
+msgstr "Ukloni nevažeće ključeve"
#: editor/animation_track_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr ""
+msgstr "Ukloni nerešene i prazne trake"
#: editor/animation_track_editor.cpp
msgid "Clean-up all animations"
-msgstr ""
+msgstr "Očisti sve animacije"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
+msgstr "Očisti Animaciju(je) (NEMA OPOZIVANJA!)"
#: editor/animation_track_editor.cpp
msgid "Clean-Up"
-msgstr ""
+msgstr "Očisti"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
-msgstr ""
+msgstr "Razmera:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select Tracks to Copy"
-msgstr "Postavi tranzicije na:"
+msgstr "Izaberi Trake za Kopiranje"
#: editor/animation_track_editor.cpp editor/editor_log.cpp
#: editor/editor_resource_picker.cpp
@@ -691,148 +681,148 @@ msgstr "Postavi tranzicije na:"
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr ""
+msgstr "Kopiraj"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select All/None"
-msgstr "Uduplaj Selekciju"
+msgstr "Označi Sve/Ništa"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "Animacija Dodaj Kanal"
+msgstr "Dodaj Klip Audio Trake"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
-msgstr ""
+msgstr "Promeni Početnu Poziciju Klipa Audio Trake"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr ""
+msgstr "Promeni Poziciju Kraja Klipa Audio Trake"
#: editor/array_property_edit.cpp
msgid "Resize Array"
-msgstr ""
+msgstr "Promeni Veličinu Niza"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr ""
+msgstr "Promeni Tip Vrednosti Niza"
#: editor/array_property_edit.cpp
msgid "Change Array Value"
-msgstr ""
+msgstr "Promeni Vrednost Niza"
#: editor/code_editor.cpp
msgid "Go to Line"
-msgstr ""
+msgstr "Idi na Liniju"
#: editor/code_editor.cpp
msgid "Line Number:"
-msgstr ""
+msgstr "Broj Linije:"
#: editor/code_editor.cpp
msgid "%d replaced."
-msgstr ""
+msgstr "%d zamenjen."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
-msgstr ""
+msgstr "%d podudara."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d matches."
-msgstr ""
+msgstr "%d podudara."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
-msgstr ""
+msgstr "Slučaj Podudaranja"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
-msgstr ""
+msgstr "Cele Reči"
#: editor/code_editor.cpp
msgid "Replace"
-msgstr ""
+msgstr "Zameni"
#: editor/code_editor.cpp
msgid "Replace All"
-msgstr ""
+msgstr "Zameni Sve"
#: editor/code_editor.cpp
msgid "Selection Only"
-msgstr ""
+msgstr "Samo Obeleženo"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
msgid "Standard"
-msgstr ""
+msgstr "Standardno"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr ""
+msgstr "Uključi/Isključi Panel sa Skriptama"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom In"
-msgstr ""
+msgstr "Uveličaj"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Out"
-msgstr ""
+msgstr "Umanji"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr ""
+msgstr "Resetuj Uveličavanje"
#: editor/code_editor.cpp
msgid "Warnings"
-msgstr ""
+msgstr "Upozorenja"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "Brojevi redova i kolona."
#: editor/connections_dialog.cpp
msgid "Method in target node must be specified."
-msgstr ""
+msgstr "Metod u ciljnom čvoru mora biti naveden."
#: editor/connections_dialog.cpp
msgid "Method name must be a valid identifier."
-msgstr ""
+msgstr "Naziv metoda mora biti važeći označavač."
#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
msgstr ""
+"Ciljni metod nije nađen. Navedi važeći metod ili priloži skriptu ciljnom "
+"čvoru."
#: editor/connections_dialog.cpp
msgid "Connect to Node:"
-msgstr ""
+msgstr "Poveži sa čvorom:"
#: editor/connections_dialog.cpp
msgid "Connect to Script:"
-msgstr ""
+msgstr "Poveži sa Skriptom:"
#: editor/connections_dialog.cpp
msgid "From Signal:"
-msgstr ""
+msgstr "Iz Signala:"
#: editor/connections_dialog.cpp
msgid "Scene does not contain any script."
-msgstr ""
+msgstr "Scena ne sadrži ni jednu skriptu."
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
msgid "Add"
-msgstr ""
+msgstr "Dodaj"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp
@@ -842,44 +832,45 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
#: editor/project_settings_editor.cpp
msgid "Remove"
-msgstr ""
+msgstr "Ukloni"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr ""
+msgstr "Dodaj Dodatni Argument Poziva:"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr ""
+msgstr "Dodatni Argumenti Poziva:"
#: editor/connections_dialog.cpp
msgid "Receiver Method:"
-msgstr ""
+msgstr "Metod Prijemnika:"
#: editor/connections_dialog.cpp
msgid "Advanced"
-msgstr ""
+msgstr "Napredno"
#: editor/connections_dialog.cpp
msgid "Deferred"
-msgstr ""
+msgstr "Odložen"
#: editor/connections_dialog.cpp
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
-msgstr ""
+msgstr "Odlaže signal, smešta ga u red i ispaljuje ga samo za vreme mirovanja."
#: editor/connections_dialog.cpp
+#, fuzzy
msgid "Oneshot"
-msgstr ""
+msgstr "Jednookidač"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Odvezuje signal nakon njegovog prvog ispuštanja."
#: editor/connections_dialog.cpp
msgid "Cannot connect signal"
-msgstr ""
+msgstr "Nije moguće povezati signal"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -893,115 +884,113 @@ msgstr ""
#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Close"
-msgstr ""
+msgstr "Zatvori"
#: editor/connections_dialog.cpp
msgid "Connect"
-msgstr ""
+msgstr "Poveži"
#: editor/connections_dialog.cpp
msgid "Signal:"
-msgstr ""
+msgstr "Signâl:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr ""
+msgstr "Poveži '%s' sa '%s'"
#: editor/connections_dialog.cpp
msgid "Disconnect '%s' from '%s'"
-msgstr ""
+msgstr "Odveži '%s' od '%s'"
#: editor/connections_dialog.cpp
msgid "Disconnect all from signal: '%s'"
-msgstr ""
+msgstr "Odveži sve od signala: '%s'"
#: editor/connections_dialog.cpp
msgid "Connect..."
-msgstr ""
+msgstr "Poveži..."
#: editor/connections_dialog.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Disconnect"
-msgstr ""
+msgstr "Odveži"
#: editor/connections_dialog.cpp
msgid "Connect a Signal to a Method"
-msgstr ""
+msgstr "Poveži Signal na Metod"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit Connection:"
-msgstr "Izmjeni Selekciju Krivulje"
+msgstr "Izmeni Konekciju:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr ""
+msgstr "Da li sigurno želis da ukloniš sve veze sa \"%s\" signala?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
-msgstr ""
+msgstr "Signali"
#: editor/connections_dialog.cpp
msgid "Filter signals"
-msgstr ""
+msgstr "Filtriraj signale"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr ""
+msgstr "Da li sigurno želiš da ukloniš sve veze sa ovog signala?"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
-msgstr ""
+msgstr "Odveži Sve"
#: editor/connections_dialog.cpp
msgid "Edit..."
-msgstr ""
+msgstr "Uredi..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "Otiđi Na Sljedeći Korak"
+msgstr "Idi na Metod"
#: editor/create_dialog.cpp
msgid "Change %s Type"
-msgstr ""
+msgstr "Promeni %s Tip"
#: editor/create_dialog.cpp editor/project_settings_editor.cpp
msgid "Change"
-msgstr ""
+msgstr "Promeni"
#: editor/create_dialog.cpp
msgid "Create New %s"
-msgstr ""
+msgstr "Napravi Novi %s"
#: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "Nema rezultata za \"%s\"."
#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Nema dostupnog opisa za %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
msgid "Favorites:"
-msgstr ""
+msgstr "Omiljeno:"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
msgid "Recent:"
-msgstr ""
+msgstr "Nedavno:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
-msgstr ""
+msgstr "Pretraga:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
#: editor/property_selector.cpp editor/quick_open.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Matches:"
-msgstr ""
+msgstr "Podudaranja:"
#: editor/create_dialog.cpp editor/editor_feature_profile.cpp
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
@@ -1009,57 +998,61 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Description:"
-msgstr ""
+msgstr "Opis:"
#: editor/dependency_editor.cpp
msgid "Search Replacement For:"
-msgstr ""
+msgstr "Traži Zamenu za:"
#: editor/dependency_editor.cpp
msgid "Dependencies For:"
-msgstr ""
+msgstr "Zavisnosti za:"
#: editor/dependency_editor.cpp
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
+"Scena '%s' se trenutno uređuje.\n"
+"Promene će imati uticaj nakon ponovnog učitavanja."
#: editor/dependency_editor.cpp
msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
+"Resurs '%s' se koristi.\n"
+"Promene će imati uticaj nakon ponovnog učitavanja."
#: editor/dependency_editor.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
-msgstr ""
+msgstr "Zavisnosti"
#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp
msgid "Resource"
-msgstr ""
+msgstr "Resurs"
#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
#: editor/project_manager.cpp editor/project_settings_editor.cpp
msgid "Path"
-msgstr ""
+msgstr "Putanja"
#: editor/dependency_editor.cpp
msgid "Dependencies:"
-msgstr ""
+msgstr "Zavisnosti:"
#: editor/dependency_editor.cpp
msgid "Fix Broken"
-msgstr ""
+msgstr "Popravi Pokvareno"
#: editor/dependency_editor.cpp
msgid "Dependency Editor"
-msgstr ""
+msgstr "Uređivač Zavisnosti"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr ""
+msgstr "Traži Resurs Zamene:"
#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
#: editor/editor_help_search.cpp editor/editor_node.cpp
@@ -1069,11 +1062,11 @@ msgstr ""
#: modules/visual_script/visual_script_property_selector.cpp
#: scene/gui/file_dialog.cpp
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr ""
+msgstr "Vlasnici Od:"
#: editor/dependency_editor.cpp
msgid ""
@@ -1081,6 +1074,9 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
+"Ukloni označene datoteke iz projekta? (Ne može se opozvati.)\n"
+"U zavisnosti od konfiguracije sistema datoteka, datoteke će ili biti "
+"premeštene u kantu za otpatke ili biti trajno uklonjene."
#: editor/dependency_editor.cpp
msgid ""
@@ -1360,9 +1356,8 @@ msgid "Bypass"
msgstr ""
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
-msgstr "Funkcije:"
+msgstr "Podešavanja Magistrale"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/scene_tree_dock.cpp
@@ -1471,6 +1466,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -1782,9 +1781,8 @@ msgid "(Properties Disabled)"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Editor Disabled)"
-msgstr "Onemogućeno"
+msgstr "(Uređivač Onemogućen)"
#: editor/editor_feature_profile.cpp
msgid "Class Options:"
@@ -1829,14 +1827,12 @@ msgid "Current Profile:"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Napravi"
+msgstr "Napravi Profil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Obriši Selekciju"
+msgstr "Ukloni Profil"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1993,14 +1989,12 @@ msgid "Move Favorite Down"
msgstr ""
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to previous folder."
-msgstr "Otiđi Na Prethodni Korak"
+msgstr "Idi na prethodni direktorijum."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to next folder."
-msgstr "Otiđi Na Sljedeći Korak"
+msgstr "Idi na sledeći direktorijum."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Go to parent folder."
@@ -2128,9 +2122,8 @@ msgid "Property Descriptions"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Vrednost:"
+msgstr "(Vrednost)"
#: editor/editor_help.cpp
msgid ""
@@ -2178,9 +2171,8 @@ msgid "Signals Only"
msgstr ""
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Constants Only"
-msgstr "Kontanta"
+msgstr "Samo Konstante"
#: editor/editor_help_search.cpp
msgid "Properties Only"
@@ -2208,7 +2200,7 @@ msgstr ""
#: editor/editor_help_search.cpp modules/visual_script/visual_script_nodes.cpp
msgid "Constant"
-msgstr "Kontanta"
+msgstr "Konstanta"
#: editor/editor_help_search.cpp
msgid "Property"
@@ -2223,9 +2215,8 @@ msgid "Property:"
msgstr ""
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Pin value"
-msgstr "Vrednost:"
+msgstr "Zakači vrednost"
#: editor/editor_inspector.cpp
msgid ""
@@ -2256,14 +2247,12 @@ msgid "Unpinned %s"
msgstr ""
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Copy Property"
-msgstr "Obriši Selekciju"
+msgstr "Kopiraj Osobinu"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Paste Property"
-msgstr "Animacija Uduplaj Ključeve"
+msgstr "Zalepi Osobinu"
#: editor/editor_inspector.cpp
msgid "Copy Property Path"
@@ -2274,9 +2263,8 @@ msgid "Output:"
msgstr ""
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Copy Selection"
-msgstr "Obriši Selekciju"
+msgstr "Kopiraj Označeno"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_resource_picker.cpp
@@ -2629,9 +2617,8 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Napravi"
+msgstr "Ponovo Učitaj Sačuvanu Scenu"
#: editor/editor_node.cpp
msgid ""
@@ -2832,7 +2819,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -2841,9 +2828,8 @@ msgid "Go to previously opened scene."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Copy Text"
-msgstr "Obriši Selekciju"
+msgstr "Kopiraj Tekst"
#: editor/editor_node.cpp
msgid "Next tab"
@@ -3052,9 +3038,8 @@ msgid "Editor"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor Settings..."
-msgstr "Tranzicije"
+msgstr "Postavke Uređivača..."
#: editor/editor_node.cpp
msgid "Editor Layout"
@@ -3121,9 +3106,8 @@ msgid "Community"
msgstr "Zajednica"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "O nama / O Godou"
+msgstr "O Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3175,19 +3159,16 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
-msgstr "Neprekidna"
+msgstr "Neprekidno Ažuriraj"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Napravi"
+msgstr "Ažuriraj sve promene"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Napravi"
+msgstr "Ažuriraj Vitalne Promene"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -3265,9 +3246,8 @@ msgid "Merge With Existing"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Apply MeshInstance Transforms"
-msgstr "Animacija Promjeni Transformaciju"
+msgstr "Primeni Transformacije MeshInstance a"
#: editor/editor_node.cpp
msgid "Open & Run a Script"
@@ -3303,9 +3283,8 @@ msgid "Select"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Izmjeni Krivulju Čvora"
+msgstr "Obeleži Trenutno"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3385,9 +3364,8 @@ msgid "Measure:"
msgstr ""
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Vreme (s): "
+msgstr "Vreme Frejma(ms)"
#: editor/editor_profiler.cpp
msgid "Average Time (ms)"
@@ -3432,9 +3410,8 @@ msgid "Calls"
msgstr ""
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Edit Text:"
-msgstr "Izmjeni Selekciju Krivulje"
+msgstr "Izmeni Tekst:"
#: editor/editor_properties.cpp editor/script_create_dialog.cpp
msgid "On"
@@ -3536,9 +3513,8 @@ msgid "Paste"
msgstr ""
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
-msgstr "Napravi"
+msgstr "Konvertuj u %s"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3605,9 +3581,8 @@ msgstr ""
#. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git").
#: editor/editor_vcs_interface.cpp
-#, fuzzy
msgid "%s Error"
-msgstr "Ogledalo"
+msgstr "%s Greška"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
@@ -4090,9 +4065,8 @@ msgid "Overwrite"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "Napravi"
+msgstr "Napravi Scenu"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
@@ -4186,9 +4160,8 @@ msgid "Rename Group"
msgstr ""
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Delete Group"
-msgstr "Animacija Obriši Ključeve"
+msgstr "Ukloni Grupu"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
@@ -4301,9 +4274,8 @@ msgid "Saving..."
msgstr ""
#: editor/import_defaults_editor.cpp
-#, fuzzy
msgid "Select Importer"
-msgstr "Uduplaj Selekciju"
+msgstr "Označi Uvoznika"
#: editor/import_defaults_editor.cpp
msgid "Importer:"
@@ -4377,9 +4349,8 @@ msgid "Copy Properties"
msgstr ""
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Animacija Uduplaj Ključeve"
+msgstr "Zalepi Osobine"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4499,16 +4470,14 @@ msgstr ""
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon"
-msgstr "Napravi"
+msgstr "Napravi Poligon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Create points."
-msgstr "Napravi"
+msgstr "Napravi tačke."
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -4523,9 +4492,8 @@ msgid "Erase points."
msgstr ""
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon"
-msgstr "Napravi"
+msgstr "izmeni Poligon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
@@ -4580,9 +4548,8 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Animation Point"
-msgstr "Optimizuj Animaciju"
+msgstr "Dodaj Tačku Animacije"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Remove BlendSpace1D Point"
@@ -4631,18 +4598,16 @@ msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Open Animation Node"
-msgstr "Optimizuj Animaciju"
+msgstr "Otvori Čvor Animacije"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Triangle already exists."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Triangle"
-msgstr "Animacija Dodaj Kanal"
+msgstr "Dodaj Trougao"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Limits"
@@ -4725,15 +4690,13 @@ msgid "Nodes Disconnected"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Set Animation"
-msgstr "Optimizuj Animaciju"
+msgstr "Postavi Animaciju"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Delete Node"
-msgstr "Animacija Obriši Ključeve"
+msgstr "Ukloni Čvor"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
@@ -4764,19 +4727,16 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Anim Clips"
-msgstr "Anim Klipovi:"
+msgstr "Anim Klipovi"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Audio Clips"
-msgstr "Audio Klipovi:"
+msgstr "Audio Klipovi"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "Funkcije:"
+msgstr "Funkcije"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
@@ -4914,9 +4874,8 @@ msgid "New"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Edit Transitions..."
-msgstr "Tranzicije"
+msgstr "Izmeni Tranzicije..."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Open in Inspector"
@@ -5014,14 +4973,12 @@ msgid "Move Node"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Tranzicije"
+msgstr "Prelaz postoji!"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Add Transition"
-msgstr "Tranzicije"
+msgstr "Dodaj Tranziciju"
#: editor/plugins/animation_state_machine_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -5061,9 +5018,8 @@ msgid "Node Removed"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition Removed"
-msgstr "Tranzicije"
+msgstr "Tranzicija Uklonjena"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set Start Node (Autoplay)"
@@ -5085,9 +5041,8 @@ msgid "Connect nodes."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Remove selected node or transition."
-msgstr "Obriši Selekciju"
+msgstr "Obriši obeležen čvor ili prelaz."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Toggle autoplay this animation on start, restart or seek to zero."
@@ -5098,9 +5053,8 @@ msgid "Set the end animation. This is useful for sub-transitions."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "Tranzicije"
+msgstr "Tranzicija: "
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Play Mode:"
@@ -5312,9 +5266,8 @@ msgid "Request failed, timeout"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Timeout."
-msgstr "Vreme:"
+msgstr "Istek vremena."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed:"
@@ -5508,6 +5461,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -5545,23 +5502,20 @@ msgid "Rotation Step:"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale Step:"
-msgstr "Skaliraj Selekciju"
+msgstr "Skaliraj Korak:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Vertical Guide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Vertical Guide"
-msgstr "Napravi"
+msgstr "Napravi Vertikalni Vodič"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Vertical Guide"
-msgstr "Obriši Selekciju"
+msgstr "Ukloni Vertikalni Vodič"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Horizontal Guide"
@@ -5572,9 +5526,8 @@ msgid "Create Horizontal Guide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Horizontal Guide"
-msgstr "Obriši Selekciju"
+msgstr "Ukloni Horizontalni Vodič"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Horizontal and Vertical Guides"
@@ -5627,9 +5580,8 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Grouped"
-msgstr "Obriši Selekciju"
+msgstr "Grupisane"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5684,18 +5636,16 @@ msgid "Center"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Left Wide"
-msgstr "Linearna"
+msgstr "Leva Široka"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Wide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Right Wide"
-msgstr "Linearna"
+msgstr "Desna Široka"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Wide"
@@ -5756,33 +5706,29 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Group Selected"
-msgstr "Obriši Selekciju"
+msgstr "Grupiši Označeno"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Ungroup Selected"
-msgstr "Obriši Selekciju"
+msgstr "Odgrupiši Označeno"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Guides"
-msgstr "Animacija Promjeni Transformaciju"
+msgstr "Očisti Vodiče"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Custom Bone(s) from Node(s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Bones"
-msgstr "Animacija Promjeni Transformaciju"
+msgstr "Očisti Kosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -5812,24 +5758,20 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Obriši Selekciju"
+msgstr "Prevuci: Rotiraj obeležen čvor oko ose."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Izbriši označeni ključ(eve)"
+msgstr "Alt+Drag: Pomeri obeležen čvor."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Scale selected node."
-msgstr "Izbriši označeni ključ(eve)"
+msgstr "Alt+Drag: Skaliraj označen čvor."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Obriši Selekciju"
+msgstr "V: Postavi poziciju ose obeleženog čvora."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5954,9 +5896,8 @@ 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"
+msgstr "Zaključaj Označen Čvor(ove)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5965,9 +5906,8 @@ 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"
+msgstr "Otključaj Označen Čvor(ove)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5976,9 +5916,8 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Group Selected Node(s)"
-msgstr "Obriši Selekciju"
+msgstr "Grupiši Označen Čvor(ove)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5987,9 +5926,8 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Ungroup Selected Node(s)"
-msgstr "Obriši Selekciju"
+msgstr "Odgrupiši Označen Čvor(ove)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
@@ -6065,9 +6003,8 @@ msgid "Scale mask for inserting keys."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Insert keys (based on mask)."
-msgstr "Animacija dodaj ključ"
+msgstr "Ubaci ključ (na osnovu maske)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -6078,14 +6015,12 @@ msgid ""
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Auto Insert Key"
-msgstr "Animacija dodaj ključ"
+msgstr "Automatski Ubaci Ključ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Animation Key and Pose Options"
-msgstr "Dužina Animacije (secunde)"
+msgstr "Ključevi Animacije i Podešavanja Poziranja"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
@@ -6104,9 +6039,8 @@ msgid "Add Node Here"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Dodaj ključ ovde"
+msgstr "Instanciraj Scenu Ovde"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6194,9 +6128,8 @@ msgid ""
msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon3D"
-msgstr "Napravi"
+msgstr "Napravi Poligon3D"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly"
@@ -6315,24 +6248,21 @@ msgid "Load Curve Preset"
msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add Point"
-msgstr "Optimizuj Animaciju"
+msgstr "Dodaj Tačku"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Point"
-msgstr "Obriši Selekciju"
+msgstr "Ukloni Tačku"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Left Linear"
-msgstr "Linearna"
+msgstr "Levi Linearni"
#: editor/plugins/curve_editor_plugin.cpp
#, fuzzy
msgid "Right Linear"
-msgstr "Linearna"
+msgstr "Desni Linearni"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Preset"
@@ -6494,7 +6424,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Create Single Convex Collision Sibling"
-msgstr "Napravi"
+msgstr "Napravi Jednostruki Konveksni Duplikat Sudara"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6505,7 +6435,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "Napravi"
+msgstr "Napravi Pojednostavljen Konveksni Duplikat Sudara"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6517,7 +6447,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "Create Multiple Convex Collision Siblings"
-msgstr "Napravi"
+msgstr "Napravi Više Konveksnih Duplikata Sudara"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6711,9 +6641,8 @@ msgid "Can only set point into a ParticlesMaterial process material"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Convert to CPUParticles2D"
-msgstr "Napravi"
+msgstr "Konvertuj u CPUParticles2D"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -6794,9 +6723,8 @@ msgid "Add Point to Curve"
msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
msgid "Split Curve"
-msgstr "Izmjeni Krivulju Čvora"
+msgstr "Razdeli Krivu"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
@@ -6952,23 +6880,20 @@ msgid "Invalid Polygon (need 3 different vertices)"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Add Custom Polygon"
-msgstr "Napravi"
+msgstr "Dodaj Prilagođeni Poligon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Polygon"
-msgstr "Napravi"
+msgstr "Ukloni Prilagođeni Poligon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Transform Polygon"
-msgstr "Napravi"
+msgstr "Transformiši Poligon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint Bone Weights"
@@ -6991,9 +6916,8 @@ msgid "Points"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Polygons"
-msgstr "Napravi"
+msgstr "Poligoni"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Bones"
@@ -7062,9 +6986,8 @@ msgid "Copy Polygon to UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Copy UV to Polygon"
-msgstr "Napravi"
+msgstr "Kopiraj UV u Poligon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -7169,28 +7092,24 @@ msgid "Flip Portals"
msgstr ""
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Pomeri Bezier Tačke"
+msgstr "Generiši Tačke u prostoru"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Napravi"
+msgstr "Generiši Tačke"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Flip Portal"
msgstr ""
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Occluder Set Transform"
-msgstr "Animacija Promjeni Transformaciju"
+msgstr "Postavi Transformaciju Okludera"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Center Node"
-msgstr "Animacija Obriši Ključeve"
+msgstr "Centriraj Čvor"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7328,9 +7247,8 @@ msgid "Next Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Previous Script"
-msgstr "Otiđi Na Prethodni Korak"
+msgstr "Prethodna Skripta"
#: editor/plugins/script_editor_plugin.cpp
msgid "File"
@@ -7491,9 +7409,8 @@ msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Line"
-msgstr "Linearna"
+msgstr "Linija"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
@@ -7542,9 +7459,8 @@ msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Breakpoints"
-msgstr "Napravi"
+msgstr "Tačke Prekida"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
@@ -7594,9 +7510,8 @@ msgid "Complete Symbol"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Evaluate Selection"
-msgstr "Skaliraj Selekciju"
+msgstr "Proceni Označeno"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
@@ -7631,14 +7546,12 @@ msgid "Toggle Bookmark"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Next Bookmark"
-msgstr "Otiđi Na Sljedeći Korak"
+msgstr "Idi na Sledeći Obeleživač"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Previous Bookmark"
-msgstr "Otiđi Na Prethodni Korak"
+msgstr "Idi na Prethodni Obeleživač"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Bookmarks"
@@ -7662,14 +7575,12 @@ msgid "Remove All Breakpoints"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Next Breakpoint"
-msgstr "Otiđi Na Sljedeći Korak"
+msgstr "Idi na Sledeću Tačku Prekida"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Previous Breakpoint"
-msgstr "Otiđi Na Prethodni Korak"
+msgstr "Idi na Prethodnu Tačku Prekida"
#: editor/plugins/shader_editor_plugin.cpp
msgid ""
@@ -7698,9 +7609,8 @@ msgid "Skeleton2D"
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-#, fuzzy
msgid "Reset to Rest Pose"
-msgstr "Napravi"
+msgstr "Resetuj na Mirujuću Pozu"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Overwrite Rest Pose"
@@ -7824,9 +7734,8 @@ msgid "Translate"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Skaliraj Selekciju"
+msgstr "Razmera"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7985,7 +7894,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8040,9 +7954,8 @@ msgid ""
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Napravi"
+msgstr "Konvertuj Prostore"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8281,42 +8194,36 @@ msgid "Unnamed Gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Mesh2D"
-msgstr "Napravi"
+msgstr "Napravi Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Mesh2D Preview"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon2D"
-msgstr "Napravi"
+msgstr "Napravi Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D"
-msgstr "Napravi"
+msgstr "Napravi CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "Napravi"
+msgstr "Predpogled CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D"
-msgstr "Napravi"
+msgstr "Napravi LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "Napravi"
+msgstr "Predpogled LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
@@ -8339,18 +8246,16 @@ msgid "Invalid geometry, can't create polygon."
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Polygon2D"
-msgstr "Napravi"
+msgstr "Konvertuj u Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D Sibling"
-msgstr "Napravi"
+msgstr "Napravi CollisionPolygon2D Duplikat"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create light occluder."
@@ -8429,14 +8334,12 @@ msgid "Move Frame"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Animations:"
-msgstr "Optimizuj Animaciju"
+msgstr "Animacije:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "New Animation"
-msgstr "Optimizuj Animaciju"
+msgstr "Nova Animacija"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed:"
@@ -8447,14 +8350,12 @@ msgid "Loop"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Animation Frames:"
-msgstr "Optimizuj Animaciju"
+msgstr "Frejmovi Animacije:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Add a Texture from File"
-msgstr "Obriši Selekciju"
+msgstr "Dodaj Teksturu iz Datoteke"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frames from a Sprite Sheet"
@@ -8533,9 +8434,8 @@ msgid "Step:"
msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Separation:"
-msgstr "Tranzicije"
+msgstr "Odvajanje:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "TextureRegion"
@@ -8554,14 +8454,12 @@ msgid "No colors found."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Napravi"
+msgstr "{num} Konstant(e)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Kontanta"
+msgstr "Konstante nisu nađene."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
@@ -8710,18 +8608,16 @@ msgid "Select all Theme items with item data."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Uduplaj Selekciju"
+msgstr "Poništi Obeleženo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Obriši Selekciju"
+msgstr "Uvezi Obeleženo"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8741,23 +8637,20 @@ msgid "Remove All Color Items"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Animacija Preimenuj Kanal"
+msgstr "Preimenuj stavku"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Constant Items"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Obriši Selekciju"
+msgstr "Ukloni Sve Font Stavke"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Obriši Selekciju"
+msgstr "Ukloni Sve Icon Stavke"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All StyleBox Items"
@@ -8846,9 +8739,8 @@ msgid "Add StyleBox Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Obriši Selekciju"
+msgstr "Ukloni stavku:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
@@ -8889,6 +8781,11 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Resurs"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8937,6 +8834,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8953,7 +8862,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Promeni %s Tip"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9194,9 +9114,8 @@ msgid "Add Texture(s) to TileSet."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected Texture from TileSet."
-msgstr "Obriši Selekciju"
+msgstr "Ukloni označenu Teksturu iz TileSet-a."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
@@ -9317,9 +9236,8 @@ msgid "Erase bitmask."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new rectangle."
-msgstr "Napravi"
+msgstr "Napravi novi pravougaonik."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -9327,9 +9245,8 @@ msgid "New Rectangle"
msgstr "Napravi"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new polygon."
-msgstr "Napravi"
+msgstr "Napravi novi poligon."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -9359,9 +9276,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected texture? This will remove all tiles which use it."
-msgstr "Obriši Selekciju"
+msgstr "Ukloni označenu teksturu? Ovo će ukloniti sva polja koja je koriste."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "You haven't selected a texture to remove."
@@ -9391,9 +9307,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete selected Rect."
-msgstr "Izbriši označeni ključ(eve)"
+msgstr "Ukloni označeni Pravoug."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -9402,9 +9317,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete polygon."
-msgstr "Napravi"
+msgstr "Ukloni poligon."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -9566,9 +9480,8 @@ msgid "Unstaged Changes"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit:"
-msgstr "Zajednica"
+msgstr "Posveti:"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Date:"
@@ -9669,18 +9582,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -9960,14 +9861,12 @@ msgid "SoftLight operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color constant."
-msgstr "Kontanta"
+msgstr "Konstanta boje."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color uniform."
-msgstr "Animacija Promjeni Transformaciju"
+msgstr "Homogenost Boje."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the %s comparison between two parameters."
@@ -10076,9 +9975,8 @@ msgid "'%s' input parameter for vertex and fragment shader mode."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar function."
-msgstr "Skaliraj Selekciju"
+msgstr "Skalarna funkcija."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Scalar operator."
@@ -10311,9 +10209,8 @@ msgid "Scalar constant."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar uniform."
-msgstr "Animacija Promjeni Transformaciju"
+msgstr "Skalarna homogenost."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the cubic texture lookup."
@@ -10336,9 +10233,8 @@ msgid "2D texture uniform lookup with triplanar."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform function."
-msgstr "Napravi"
+msgstr "Funkcija transformacije."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -10380,14 +10276,12 @@ msgid "Multiplies vector by transform."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform constant."
-msgstr "Napravi"
+msgstr "Transformacija konstante."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform uniform."
-msgstr "Napravi"
+msgstr "Transformacija homogenosti."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector function."
@@ -11074,7 +10968,7 @@ msgstr "Obriši Selekciju"
#: editor/project_manager.cpp
msgid "About"
-msgstr "O nama / O Godou"
+msgstr "O Godot-u"
#: editor/project_manager.cpp
msgid "Asset Library Projects"
@@ -11349,7 +11243,7 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr "Opšti deo"
+msgstr "Opšta"
#: editor/project_settings_editor.cpp
msgid "Override For..."
@@ -11733,14 +11627,12 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes and any children?"
-msgstr "Animacija Obriši Ključeve"
+msgstr "Obrisi %d čvorova i decu?"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes?"
-msgstr "Animacija Obriši Ključeve"
+msgstr "Obriši %d čvorova?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -11751,9 +11643,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Animacija Obriši Ključeve"
+msgstr "Obriši čvor \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11944,9 +11835,8 @@ msgid "Delete (No Confirm)"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Add/Create a New Node."
-msgstr "Napravi"
+msgstr "Dodaj/Napravi nov čvor."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -12154,9 +12044,8 @@ msgid "Built-in script (into scene file)."
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will create a new script file."
-msgstr "Napravi"
+msgstr "Biće kreirana nova datoteka skripte."
#: editor/script_create_dialog.cpp
msgid "Will load an existing script file."
@@ -12207,9 +12096,8 @@ msgid "Warning:"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Error:"
-msgstr "Ogledalo"
+msgstr "Greška:"
#: editor/script_editor_debugger.cpp
msgid "C++ Error"
@@ -12273,6 +12161,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtriraj signale"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -12887,27 +12780,24 @@ msgid "Override an existing built-in function."
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new function."
-msgstr "Napravi"
+msgstr "Napravi novu funkciju."
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new variable."
-msgstr "Napravi"
+msgstr "Napravi novu promenljivu."
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new signal."
-msgstr "Napravi"
+msgstr "Napravi novi signal."
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
@@ -13126,14 +13016,12 @@ msgid "Add Nodes..."
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "Funkcije:"
+msgstr "Dodaj funkciju..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "Funkcije:"
+msgstr "naziv_funkcije"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
@@ -13156,9 +13044,8 @@ msgid "Cut Nodes"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "Funkcije:"
+msgstr "Napravi Funkciju"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
@@ -13308,9 +13195,8 @@ msgid "Emit %s"
msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Function"
-msgstr "Funkcije:"
+msgstr "Funkcija"
#: modules/visual_script/visual_script_nodes.cpp
msgid "Compose Array"
@@ -13589,6 +13475,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
@@ -13908,9 +13797,8 @@ msgid ""
msgstr ""
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "Kontanta"
+msgstr "Identitet nije pronađen."
#: platform/osx/export/export.cpp
msgid "Creating app bundle"
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index 9645a3adff..91d13086f4 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -1501,6 +1501,11 @@ msgstr "Ladda standard Buss-Layouten."
msgid "Create a new Bus Layout."
msgstr "Skapa en ny Buss-Layout."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Öppna Ljud-Buss Layout"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Ogiltigt namn."
@@ -2989,7 +2994,7 @@ msgstr "Växla distraktionsfritt läge."
msgid "Add a new scene."
msgstr "Lägg till en ny scen."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Scen"
@@ -5781,6 +5786,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Välj mall-fil"
@@ -8349,7 +8358,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9293,6 +9307,11 @@ msgstr "Välj en annan temaresurs:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Byt namn på Resurs"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Importera Tema"
@@ -9346,6 +9365,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Ändra Bas Typ:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Ändra Bas Typ:"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Ladda Standard"
@@ -9363,7 +9396,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "Ändra Typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -10112,18 +10156,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Matchar:"
@@ -12781,6 +12813,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Filtrera tiles"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14135,6 +14172,9 @@ msgstr "Ogiltigt paket namn:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index 6a737cca56..c278dc4460 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -1465,6 +1465,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2820,7 +2824,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5484,6 +5488,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7928,7 +7936,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8818,6 +8831,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8866,6 +8883,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8882,7 +8911,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9570,18 +9609,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12158,6 +12185,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13462,6 +13493,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/te.po b/editor/translations/te.po
index f329a3c39f..1c6ddff44b 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -1438,6 +1438,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2787,7 +2791,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5430,6 +5434,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7855,7 +7863,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8730,6 +8743,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8776,6 +8793,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8792,7 +8821,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9472,18 +9511,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12037,6 +12064,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13326,6 +13357,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/th.po b/editor/translations/th.po
index 3359054a03..c3de50112f 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -1491,6 +1491,11 @@ msgstr "โหลดค่าเริ่มต้นเลย์เอาต์
msgid "Create a new Bus Layout."
msgstr "สร้างเลย์เอาต์บัสใหม่"
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "เปิดเลย์เอาต์ของบัสเสียง"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "ชื่อผิดพลาด"
@@ -2911,7 +2916,7 @@ msgstr "โหมดไร้สิ่งรบกวน"
msgid "Add a new scene."
msgstr "เพิ่มฉากใหม่"
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "ฉาก"
@@ -5666,6 +5671,10 @@ msgid "Bake Lightmaps"
msgstr "สร้าง Lightmaps"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "เลือกไฟล์ bake ของ lightmap :"
@@ -8180,7 +8189,13 @@ msgid "Cinematic Preview"
msgstr "ดูตัวอย่างแบบภาพยนตร์"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "ไม่สามารถใช้งานได้เมื่อใช้การเรนเดอร์โดย GLES2"
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9126,6 +9141,11 @@ msgstr "ลบรีซอร์ส"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "เปลี่ยนชื่อรีซอร์ส"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "นำเข้าธีม"
@@ -9180,6 +9200,21 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "เพิ่มไอเทม"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "แก้ไขประเภทตัวแปร"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "เปลี่ยนประเภท"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "โหลดค่าเริ่มต้น"
@@ -9198,8 +9233,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "เพิ่มไอเทม"
+msgid "Base Type"
+msgstr "เปลี่ยนประเภท"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9914,18 +9959,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "พบ:"
@@ -12620,6 +12653,11 @@ msgid "Stack Frames"
msgstr "สแตค"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "ตัวกรองไทล์"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "ตัวตรวจวิเคราะห์ประสิทธิภาพ (Profiler)"
@@ -13960,9 +13998,10 @@ msgstr "ชื่อแพ็คเกจผิดพลาด:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"โมดูล \"GodotPaymentV3\" ที่ไม่ถูกต้องได้รวมอยู่ในการตั้งค่าโปรเจกต์ \"android/"
-"modules\" (เปลี่ยนแปลงใน Godot 3.2.2)\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/tl.po b/editor/translations/tl.po
index 3384446e1d..c943692efb 100644
--- a/editor/translations/tl.po
+++ b/editor/translations/tl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2022-01-07 11:42+0000\n"
+"PO-Revision-Date: 2022-03-02 18:39+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.1\n"
+"X-Generator: Weblate 4.11.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -253,7 +253,7 @@ msgstr "Ipalit sa on/off ang track na ito."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr "Paraang Nag-aapdate (Kung papano inayos ang katangian na ito)"
+msgstr "Paraan ng Pag-update (Kung papano inayos ang katangian na ito)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -321,7 +321,7 @@ msgstr "Maglagay ng Key"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
-msgstr "Doblehin ang (mga) Key"
+msgstr "Duplikahin ang (mga) Key"
#: editor/animation_track_editor.cpp
msgid "Add RESET Value(s)"
@@ -548,7 +548,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation step value."
-msgstr ""
+msgstr "Bilang ng usog ng Animasyon."
#: editor/animation_track_editor.cpp
msgid "Seconds"
@@ -609,7 +609,7 @@ msgstr "Bumalik sa Nakaraang Hakbang"
#: editor/animation_track_editor.cpp
msgid "Apply Reset"
-msgstr ""
+msgstr "I-apply ang Reset"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -633,7 +633,7 @@ msgstr "Gumawa ng (mga) RESET Track"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr ""
+msgstr "Tagapabilis ng Animasyon"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
@@ -645,7 +645,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr ""
+msgstr "Pinakahangganang Angulo na Mao-optimize:"
#: editor/animation_track_editor.cpp
msgid "Optimize"
@@ -1151,11 +1151,11 @@ msgstr "Mga Resources na Walang Tiyak na Pagmamayari:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr ""
+msgstr "Ibahin ang Dictionary Key"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
-msgstr ""
+msgstr "Ibahin ang Dictionary Value"
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
@@ -1347,7 +1347,7 @@ msgstr "Ilipat ang Effect ng Bus"
#: editor/editor_audio_buses.cpp
msgid "Delete Bus Effect"
-msgstr ""
+msgstr "Alisin ang Effect sa Bus"
#: editor/editor_audio_buses.cpp
msgid "Drag & drop to rearrange."
@@ -1363,7 +1363,7 @@ msgstr "Nakatahimik"
#: editor/editor_audio_buses.cpp
msgid "Bypass"
-msgstr "Pasikot-sikot"
+msgstr "Ligtaan"
#: editor/editor_audio_buses.cpp
msgid "Bus Options"
@@ -1376,11 +1376,11 @@ msgstr "Doblehin"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
-msgstr ""
+msgstr "I-balik sa dati ang Volume"
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
-msgstr ""
+msgstr "Alisin ang Effect"
#: editor/editor_audio_buses.cpp
msgid "Audio"
@@ -1440,7 +1440,7 @@ msgstr "Nabigong ang pagsave ang file: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr ""
+msgstr "Magdagdag ng Bus"
#: editor/editor_audio_buses.cpp
msgid "Add a new Audio Bus to this layout."
@@ -1476,6 +1476,11 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "I-save Ang Ayos ng Audio Bus Bilang..."
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Di-wastong pangalan."
@@ -1507,7 +1512,7 @@ msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
-msgstr ""
+msgstr "Meron ng '%s' na Autoload!"
#: editor/editor_autoload_settings.cpp
msgid "Rename Autoload"
@@ -1572,11 +1577,11 @@ msgstr "Pangkalahatang (Global) Variable"
#: editor/editor_data.cpp
msgid "Paste Params"
-msgstr ""
+msgstr "I-pasta ang mga Params"
#: editor/editor_data.cpp
msgid "Updating Scene"
-msgstr ""
+msgstr "Sinasariwa ang Eksena"
#: editor/editor_data.cpp
msgid "Storing local changes..."
@@ -1821,6 +1826,8 @@ msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
msgstr ""
+"Meron ng '%s' na profile. Alisin muna ito bago mag-import. Naihinto ang pag-"
+"import."
#: editor/editor_feature_profile.cpp
msgid "Error saving profile to path: '%s'."
@@ -2030,12 +2037,12 @@ msgstr "Tingnan ang mga item bilang talaan."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
-msgstr ""
+msgstr "Mga Direktoryo at mga File:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
-msgstr ""
+msgstr "Pasilip:"
#: editor/editor_file_dialog.cpp
#: editor/plugins/version_control_editor_plugin.cpp scene/gui/file_dialog.cpp
@@ -2086,9 +2093,8 @@ msgid "Properties"
msgstr "Mga Katangian"
#: editor/editor_help.cpp
-#, fuzzy
msgid "overrides %s:"
-msgstr "ipagpalit:"
+msgstr "Ipagpapalit sa %s:"
#: editor/editor_help.cpp
msgid "default:"
@@ -2104,7 +2110,7 @@ msgstr "Mga Katangian ng Theme"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Colors"
-msgstr ""
+msgstr "Mga Kulay"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constants"
@@ -2112,15 +2118,15 @@ msgstr "Mga Konstant"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Fonts"
-msgstr ""
+msgstr "Mga Font"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Icons"
-msgstr ""
+msgstr "Mga Icon"
#: editor/editor_help.cpp
msgid "Styles"
-msgstr ""
+msgstr "Mga Estilo"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2161,7 +2167,7 @@ msgstr "Maghanap sa Sanggunian"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
-msgstr ""
+msgstr "Sensitibo sa Case"
#: editor/editor_help_search.cpp
msgid "Show Hierarchy"
@@ -2228,9 +2234,8 @@ msgid "Property:"
msgstr "Katangian:"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Pin value"
-msgstr "(halaga)"
+msgstr "Halaga ng Pin"
#: editor/editor_inspector.cpp
msgid ""
@@ -2261,19 +2266,16 @@ msgid "Unpinned %s"
msgstr ""
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Copy Property"
-msgstr "Katangian"
+msgstr "Kopyahin ang Katangian"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Paste Property"
-msgstr "Katangian"
+msgstr "I-paste ang Katangian"
#: editor/editor_inspector.cpp
-#, fuzzy
msgid "Copy Property Path"
-msgstr "Kopyahin ang Kinaroroonan"
+msgstr "Kopyahin ang Kinaroroonan ng Katangian"
#: editor/editor_log.cpp
msgid "Output:"
@@ -2373,10 +2375,12 @@ msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
msgstr ""
+"Hindi mai-ligtas ang resource na ito dahil hindi ito nabibilang sa ginagalaw "
+"na eksena. Gawing tangi (unique) muna ito."
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
-msgstr "I-save ang Resource Bilang..."
+msgstr "I-ligtas ang Resource Bilang..."
#: editor/editor_node.cpp
msgid "Can't open file for writing:"
@@ -2440,11 +2444,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Could not save one or more scenes!"
-msgstr ""
+msgstr "Hindi mai-iligtas ang ni isa o dalawang eksena!"
#: editor/editor_node.cpp
msgid "Save All Scenes"
-msgstr "Iimpok Lahat ng Mga Eksena"
+msgstr "I-ligtas Lahat ng Mga Eksena"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "Can't overwrite scene that is still open!"
@@ -2523,7 +2527,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr ""
+msgstr "Walang eksenang pinili upang patakbuhin ang aplikasyon."
#: editor/editor_node.cpp
msgid "Save scene before running..."
@@ -2531,7 +2535,7 @@ msgstr "Isave muna ang eksena bago ito patakbuhin..."
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
-msgstr ""
+msgstr "Hindi maumpisa ang subprocess!"
#: editor/editor_node.cpp editor/filesystem_dock.cpp
msgid "Open Scene"
@@ -2539,11 +2543,11 @@ msgstr "Magbukas ng Eksena"
#: editor/editor_node.cpp
msgid "Open Base Scene"
-msgstr ""
+msgstr "Buksan ang Punong Eksena (Base Scene)"
#: editor/editor_node.cpp
msgid "Quick Open..."
-msgstr "Mabilisang Magbukas..."
+msgstr "Buksan Kaagad..."
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
@@ -2579,7 +2583,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Save Scene As..."
-msgstr ""
+msgstr "I-ligtas ang Eksena Bilang..."
#: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp
msgid "This operation can't be done without a scene."
@@ -2797,11 +2801,11 @@ msgstr "Isara ang Tab"
#: editor/editor_node.cpp
msgid "Undo Close Tab"
-msgstr ""
+msgstr "Ibalik ang Nasarang Tab"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
-msgstr "Isara Ang Ibang Mga Tab"
+msgstr "Isara ang Ibang mga Tab"
#: editor/editor_node.cpp
msgid "Close Tabs to the Right"
@@ -2843,7 +2847,7 @@ msgstr ""
msgid "Add a new scene."
msgstr "Magdagdag ng panibagong eksena."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Eksena"
@@ -2885,7 +2889,7 @@ msgstr "Magbukas ng Eksena..."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Open Recent"
-msgstr ""
+msgstr "Buksan ang Kumakailan"
#: editor/editor_node.cpp
msgid "Save Scene"
@@ -2906,12 +2910,12 @@ msgstr "TileSet..."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr ""
+msgstr "I-undo"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Redo"
-msgstr ""
+msgstr "I-redo"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
@@ -2947,9 +2951,8 @@ msgid "Install Android Build Template..."
msgstr "Ikabit ang Android Build Template..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open User Data Folder"
-msgstr "Buksan ang Folder ng Datos ng Proyekto"
+msgstr "Buksan ang User Data Folder ng Proyekto"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
@@ -3093,11 +3096,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Open Editor Settings Folder"
-msgstr ""
+msgstr "Buksan ang Folder ng Editor Settings"
#: editor/editor_node.cpp
msgid "Manage Editor Features..."
-msgstr ""
+msgstr "Pangasiwaan ang mga Tampok ng Editor..."
#: editor/editor_node.cpp
msgid "Manage Export Templates..."
@@ -3232,7 +3235,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Install from file"
-msgstr ""
+msgstr "Mag-install mula sa file"
#: editor/editor_node.cpp
msgid "Select android sources file"
@@ -3393,7 +3396,7 @@ msgstr "Sukat:"
#: editor/editor_profiler.cpp
msgid "Frame Time (ms)"
-msgstr ""
+msgstr "Oras ng Frame (ms)"
#: editor/editor_profiler.cpp
msgid "Average Time (ms)"
@@ -3485,7 +3488,7 @@ msgstr "Pumili ng Tinginan"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
-msgstr ""
+msgstr "Ang piniling node ay hindi Viewport!"
#: editor/editor_properties_array_dict.cpp
msgid "Size: "
@@ -3524,7 +3527,7 @@ msgstr ""
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Make Unique"
-msgstr ""
+msgstr "Gawing Tangi (Unique)"
#: editor/editor_resource_picker.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
@@ -3538,7 +3541,7 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp
#: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Paste"
-msgstr "Idikit"
+msgstr "I-pasta"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "Convert to %s"
@@ -3631,7 +3634,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Inuumpisahan ang pag-download..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3708,7 +3711,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Can't Resolve"
-msgstr ""
+msgstr "Hindi Mairesolba"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3871,7 +3874,7 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Favorites"
-msgstr ""
+msgstr "Mga Paborito"
#: editor/filesystem_dock.cpp
msgid "Status: Import of file failed. Please fix file and reimport manually."
@@ -3938,19 +3941,19 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Renaming file:"
-msgstr ""
+msgstr "Pinapalitan ang pangalan ng file:"
#: editor/filesystem_dock.cpp
msgid "Renaming folder:"
-msgstr ""
+msgstr "Pinapalitan ang pangalan ng folder:"
#: editor/filesystem_dock.cpp
msgid "Duplicating file:"
-msgstr ""
+msgstr "Dinuduplicate ang file:"
#: editor/filesystem_dock.cpp
msgid "Duplicating folder:"
-msgstr ""
+msgstr "Dinuduplicate ang folder:"
#: editor/filesystem_dock.cpp
msgid "New Inherited Scene"
@@ -3970,15 +3973,15 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Add to Favorites"
-msgstr ""
+msgstr "Idagdag sa Paborito mo"
#: editor/filesystem_dock.cpp
msgid "Remove from Favorites"
-msgstr ""
+msgstr "Alisin sa Paborito mo"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
-msgstr "Baguhin ang mga Kaasahan..."
+msgstr "Baguhin ang mga Kaasahan (Dependencies)..."
#: editor/filesystem_dock.cpp
msgid "View Owners..."
@@ -3998,7 +4001,7 @@ msgstr "Bagong Skrip..."
#: editor/filesystem_dock.cpp
msgid "New Resource..."
-msgstr ""
+msgstr "Bagong Resource..."
#: editor/filesystem_dock.cpp editor/inspector_dock.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -4034,15 +4037,15 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Sort by Last Modified"
-msgstr "Ayusin ayon sa Huling Binago"
+msgstr "Pagbukud-bukurin ayon sa Huling Binago"
#: editor/filesystem_dock.cpp
msgid "Sort by First Modified"
-msgstr ""
+msgstr "Pagbukud-bukurin ayon sa Unang Binago"
#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate..."
-msgstr ""
+msgstr "I-duplicate..."
#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Rename..."
@@ -4087,15 +4090,15 @@ msgstr "Ilipat"
#: editor/project_manager.cpp editor/rename_dialog.cpp
#: editor/scene_tree_dock.cpp
msgid "Rename"
-msgstr ""
+msgstr "Baguhin ang Pangalan"
#: editor/filesystem_dock.cpp
msgid "Overwrite"
-msgstr ""
+msgstr "Ipagpalit"
#: editor/filesystem_dock.cpp
msgid "Create Scene"
-msgstr ""
+msgstr "Lumikha ng Eksena"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
@@ -4111,11 +4114,11 @@ msgstr "Hanapin:"
#: editor/find_in_files.cpp editor/rename_dialog.cpp
msgid "Replace:"
-msgstr ""
+msgstr "Palitan:"
#: editor/find_in_files.cpp
msgid "Folder:"
-msgstr ""
+msgstr "Folder:"
#: editor/find_in_files.cpp
msgid "Filters:"
@@ -4130,11 +4133,11 @@ msgstr ""
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find..."
-msgstr ""
+msgstr "Hanapin..."
#: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp
msgid "Replace..."
-msgstr ""
+msgstr "Palitan..."
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -4156,7 +4159,7 @@ msgstr "Palitan Lahat"
#: editor/find_in_files.cpp
msgid "Searching..."
-msgstr ""
+msgstr "Naghahanap..."
#: editor/find_in_files.cpp
msgid "%d match in %d file."
@@ -4172,11 +4175,11 @@ msgstr ""
#: editor/groups_editor.cpp
msgid "Add to Group"
-msgstr ""
+msgstr "Idagdag sa Pangkat"
#: editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr ""
+msgstr "Alisin sa Pangkat"
#: editor/groups_editor.cpp
msgid "Group name already exists."
@@ -4205,7 +4208,7 @@ msgstr ""
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
msgid "Filter nodes"
-msgstr ""
+msgstr "Salain ang mga node"
#: editor/groups_editor.cpp
msgid "Nodes in Group"
@@ -4266,11 +4269,11 @@ msgstr ""
#: editor/import/resource_importer_scene.cpp
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Import Scene"
-msgstr ""
+msgstr "Mag-angkat ng Eksena"
#: editor/import/resource_importer_scene.cpp
msgid "Importing Scene..."
-msgstr ""
+msgstr "Inaangkat ang Eksena..."
#: editor/import/resource_importer_scene.cpp
msgid "Generating Lightmaps"
@@ -4302,7 +4305,7 @@ msgstr ""
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
-msgstr ""
+msgstr "Nililigtas..."
#: editor/import_defaults_editor.cpp
msgid "Select Importer"
@@ -4346,15 +4349,15 @@ msgstr ""
#: editor/import_dock.cpp
msgid "Import As:"
-msgstr ""
+msgstr "Iangkat Bilang:"
#: editor/import_dock.cpp
msgid "Preset"
-msgstr ""
+msgstr "Preset"
#: editor/import_dock.cpp
msgid "Save Scenes, Re-Import, and Restart"
-msgstr ""
+msgstr "I-ligtas ang mga Eksena, I-reimport at Mag-restart"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
@@ -4377,11 +4380,11 @@ msgstr ""
#: editor/inspector_dock.cpp
msgid "Copy Properties"
-msgstr ""
+msgstr "Kopyahin ang mga Katangian"
#: editor/inspector_dock.cpp
msgid "Paste Properties"
-msgstr ""
+msgstr "I-pasta ang mga Katangian"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4403,7 +4406,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Save As..."
-msgstr ""
+msgstr "I-ligtas Bilang..."
#: editor/inspector_dock.cpp
msgid "Extra resource options."
@@ -4435,11 +4438,11 @@ msgstr ""
#: editor/inspector_dock.cpp
msgid "Open documentation for this object."
-msgstr ""
+msgstr "Buksan ang dokumentasyon para sa object na ito."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
-msgstr ""
+msgstr "Buksan ang Dokumentasyon"
#: editor/inspector_dock.cpp
msgid "Filter properties"
@@ -4467,48 +4470,48 @@ msgstr ""
#: editor/plugin_config_dialog.cpp
msgid "Create a Plugin"
-msgstr ""
+msgstr "Gumawa ng Plugin"
#: editor/plugin_config_dialog.cpp
msgid "Plugin Name:"
-msgstr ""
+msgstr "Pangalan ng Plugin:"
#: editor/plugin_config_dialog.cpp
msgid "Subfolder:"
-msgstr ""
+msgstr "Subfolder:"
#: editor/plugin_config_dialog.cpp
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Author:"
-msgstr ""
+msgstr "May-akda:"
#: editor/plugin_config_dialog.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Version:"
-msgstr ""
+msgstr "Bersyon:"
#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp
msgid "Language:"
-msgstr ""
+msgstr "Wika:"
#: editor/plugin_config_dialog.cpp
msgid "Script Name:"
-msgstr ""
+msgstr "Pangalan ng Skript:"
#: editor/plugin_config_dialog.cpp
msgid "Activate now?"
-msgstr ""
+msgstr "Aktibahin na ngayon?"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon"
-msgstr ""
+msgstr "Lumikha ng Polygon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create points."
-msgstr ""
+msgstr "Lumikha ng mga punto."
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -4516,27 +4519,30 @@ msgid ""
"LMB: Move Point\n"
"RMB: Erase Point"
msgstr ""
+"Ayusin ang mga punto.\n"
+"LMB: Maglipat ng Punto\n"
+"RMB: Magbura ng Punto"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Erase points."
-msgstr ""
+msgstr "Burahin ang mga punto."
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Edit Polygon"
-msgstr ""
+msgstr "Ayusin ang Polygon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
-msgstr ""
+msgstr "Maglagay ng Punto"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Edit Polygon (Remove Point)"
-msgstr ""
+msgstr "Ayusin ang Polygon (Alisin ang Punto)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Remove Polygon And Point"
-msgstr ""
+msgstr "Alisin ang Polygon At Punto"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4544,14 +4550,14 @@ msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr ""
+msgstr "Magdagdag ng Animation"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Load..."
-msgstr ""
+msgstr "Magload..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4617,20 +4623,20 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Point"
-msgstr ""
+msgstr "Punto"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Open Editor"
-msgstr ""
+msgstr "Buksan ang Editor"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Open Animation Node"
-msgstr ""
+msgstr "Buksan ang Animation Node"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Triangle already exists."
@@ -4638,7 +4644,7 @@ msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Add Triangle"
-msgstr ""
+msgstr "Magdagdag ng Tatsulok"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Limits"
@@ -4722,12 +4728,12 @@ msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Set Animation"
-msgstr ""
+msgstr "Itakda ang Animasyon"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Delete Node"
-msgstr ""
+msgstr "Burahin ang Node"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
@@ -4790,42 +4796,42 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "I-toggle ang Kusang Pagpapalabas"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr ""
+msgstr "Bagong Pangalan ng Animation:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+msgstr "Bagong Anim"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr ""
+msgstr "Baguhin ang Pangalan ng Animasyon:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr ""
+msgstr "Alisin ang Animation?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "Alisin ang Animation"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Invalid animation name!"
-msgstr ""
+msgstr "Di-wastong pangalan ng animation!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation name already exists!"
-msgstr ""
+msgstr "May nakapangalan na parehas sa Animation na ito!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr ""
+msgstr "Palitan ang Pangalan ng Animation"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
@@ -4861,7 +4867,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to edit!"
-msgstr ""
+msgstr "Walang animasyong pinagtratrabauhan!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
@@ -4906,7 +4912,7 @@ msgstr "Bago"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Transitions..."
-msgstr ""
+msgstr "Ayusin ang mga Transisyon..."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Open in Inspector"
@@ -4930,7 +4936,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
-msgstr ""
+msgstr "Mga Direksyon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
@@ -5062,6 +5068,9 @@ msgid ""
"RMB to add new nodes.\n"
"Shift+LMB to create connections."
msgstr ""
+"Magpili at maglipad ng mga node.\n"
+"RMB upang magdagdag ng bagong mga node.\n"
+"Shift+LMB upang gumawa ng mga bagong koneksyon."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Create new nodes."
@@ -5175,15 +5184,15 @@ msgstr ""
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Delete Input"
-msgstr ""
+msgstr "Alisin ang Input"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr ""
+msgstr "Wasto ang animation tree."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr ""
+msgstr "Di-wasto ang animation tree."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation Node"
@@ -5235,27 +5244,27 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
-msgstr ""
+msgstr "Laman:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
-msgstr ""
+msgstr "Tignan ang mga File"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download"
-msgstr ""
+msgstr "I-download"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
-msgstr ""
+msgstr "Nabigo sa pagkonekta, maaring subukan muli."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect."
-msgstr ""
+msgstr "Hindi makakonekta."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect to host:"
-msgstr ""
+msgstr "Hindi makakonekta sa host:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
@@ -5271,7 +5280,7 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve."
-msgstr ""
+msgstr "Hindi mai-resolba."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, return code:"
@@ -5283,7 +5292,7 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Write error."
-msgstr ""
+msgstr "Nabigo sa pag-write."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
@@ -5303,55 +5312,55 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed:"
-msgstr ""
+msgstr "Nabigo:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
+msgstr "Di-wastong download hash, inaakalang may gumalaw ng file."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr ""
+msgstr "Inaasahan:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr ""
+msgstr "Natanggap:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed SHA-256 hash check"
-msgstr ""
+msgstr "Nabigo sa pagsusuri ng SHA-256 hash"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr ""
+msgstr "Nabigo sa Pagdownload ng Asset:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
-msgstr ""
+msgstr "Dinadawnlowd (%s/%s)..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading..."
-msgstr ""
+msgstr "Dinadawnlowd..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
-msgstr ""
+msgstr "Rineresolba..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Error making request"
-msgstr ""
+msgstr "Nabigo sa paggawa ng hiling"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
-msgstr ""
+msgstr "Nakatenga"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Install..."
-msgstr ""
+msgstr "I-install..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
-msgstr ""
+msgstr "Subukan muli"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download Error"
@@ -5371,23 +5380,23 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (A-Z)"
-msgstr ""
+msgstr "Pangalan (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (Z-A)"
-msgstr ""
+msgstr "Pangalan (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "License (A-Z)"
-msgstr ""
+msgstr "Lisensya (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "License (Z-A)"
-msgstr ""
+msgstr "Lisensya (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "First"
-msgstr ""
+msgstr "Panguna"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Previous"
@@ -5403,7 +5412,7 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "All"
-msgstr ""
+msgstr "Lahat"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
@@ -5423,31 +5432,31 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
-msgstr ""
+msgstr "Ipagbukud-bukod:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Category:"
-msgstr ""
+msgstr "Kaurian:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr ""
+msgstr "Site:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Support"
-msgstr ""
+msgstr "Naka-alalay"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "Opisyal"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr ""
+msgstr "Sinusubukan"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Loading..."
-msgstr ""
+msgstr "Nagloload..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
@@ -5493,13 +5502,17 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
-msgstr ""
+msgstr "Pasilip"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
@@ -5567,7 +5580,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate %d CanvasItems"
-msgstr ""
+msgstr "Paikutin ang (mga) %d Canvasitems"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate CanvasItem \"%s\" to %d degrees"
@@ -5715,7 +5728,7 @@ msgid ""
"Project Camera Override\n"
"Overrides the running project's camera with the editor viewport camera."
msgstr ""
-"Pagpapalit ng Kamera ng Proyekto\n"
+"Pagpapalit sa Kamera ng Proyekto\n"
"Pinapalitan ang kamera ng tumatakbong proyekto sa kamera ng editor viewport."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5729,12 +5742,12 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock Selected"
-msgstr ""
+msgstr "I-lock ang nakapili"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock Selected"
-msgstr ""
+msgstr "I-unlock ang nakapili"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5748,7 +5761,7 @@ msgstr "Ibuwag Ang Pangkat ng Napili"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr ""
+msgstr "I-pasta ang Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Guides"
@@ -5764,11 +5777,11 @@ msgstr "Alisin Ang Mga Buto"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
-msgstr ""
+msgstr "Lumikha ng IK Chain"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr ""
+msgstr "Alisin ang IK Chain"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5781,7 +5794,7 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Reset"
-msgstr ""
+msgstr "Ibalik sa Dati ang Zoom"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5810,10 +5823,12 @@ msgstr "V: Itakda ang posisyon ng pivot sa node."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
+"Alt+RMB: Ipakita ang listahan ng lahat ng node at posisyong pinindutan, "
+"kabilang ang mga naka-lock."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "RMB: Magdagdag ng node sa posisyong pinindutan."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5832,7 +5847,7 @@ msgstr "Paraan ng Pagpapalaki"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Shift: Scale proportionally."
-msgstr ""
+msgstr "Shift: Palakihin na pa-proporsyonal."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5861,7 +5876,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Smart Snap"
-msgstr ""
+msgstr "Gamitin ang Smart Snap"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle grid snapping."
@@ -5931,14 +5946,13 @@ 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"
+msgstr "I-lock ang Nakapiling (mga) Node"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
-msgstr ""
+msgstr "I-Unlock ang Napiling Object (maaring galawin)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5964,9 +5978,8 @@ 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"
+msgstr "Ibuwag Ang Pangkat ng (mga) Napiling Node"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
@@ -5991,7 +6004,7 @@ msgstr "Tingnan"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Always Show Grid"
-msgstr ""
+msgstr "Parating Ipakita ang Grid"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
@@ -6095,11 +6108,11 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "I-zoom sa 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "I-zoom sa 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
@@ -6168,15 +6181,15 @@ msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Polygon3D"
-msgstr ""
+msgstr "Gumawa ng Polygon3D"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly"
-msgstr ""
+msgstr "Ayusin ang Poly"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr ""
+msgstr "Ayusin ang Poly (Magalis ng Punto)"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
@@ -6192,7 +6205,7 @@ msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Restart"
-msgstr ""
+msgstr "Simulan muli"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6247,12 +6260,12 @@ msgstr ""
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emission Points From Mesh"
-msgstr ""
+msgstr "Gumawa ng mga Punto ng Bugahan Galing sa Mesh"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emission Points From Node"
-msgstr ""
+msgstr "Gumawa ng mga Punto ng Bugahan Galing sa Node"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat 0"
@@ -6264,11 +6277,11 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
-msgstr ""
+msgstr "Suwabeng Pagpasok"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease Out"
-msgstr ""
+msgstr "Suwabeng Paglabas"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
@@ -6288,11 +6301,11 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Add Point"
-msgstr ""
+msgstr "Magdagdag ng Punto"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Point"
-msgstr ""
+msgstr "Magalis ng Punto"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Left Linear"
@@ -7242,16 +7255,16 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Next"
-msgstr ""
+msgstr "Hanapin ang Susunod"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
-msgstr ""
+msgstr "Hanapin ang Nakaraan"
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter scripts"
-msgstr ""
+msgstr "Salain ang mga skrip"
#: editor/plugins/script_editor_plugin.cpp
msgid "Toggle alphabetical sorting of the method list."
@@ -7291,15 +7304,15 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Open..."
-msgstr ""
+msgstr "Buksan..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reopen Closed Script"
-msgstr ""
+msgstr "Buksan Muli ang Naisarang Skrip"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
-msgstr ""
+msgstr "I-ligtas Lahat"
#: editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
@@ -7416,7 +7429,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Results"
-msgstr ""
+msgstr "Bunga ng Paghahanap"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Scripts"
@@ -7449,7 +7462,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
-msgstr ""
+msgstr "Tumungo sa Punsyon"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
@@ -7500,29 +7513,29 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
msgid "Go To"
-msgstr ""
+msgstr "Pumunta sa"
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Cut"
-msgstr ""
+msgstr "Gupitin"
#: editor/plugins/script_text_editor.cpp editor/plugins/theme_editor_plugin.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Select All"
-msgstr ""
+msgstr "Piliin Lahat"
#: editor/plugins/script_text_editor.cpp
msgid "Delete Line"
-msgstr ""
+msgstr "Burahin ang Linya"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Left"
-msgstr ""
+msgstr "I-urong Pakaliwa"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Right"
-msgstr ""
+msgstr "I-urong Pakanan"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
@@ -7595,11 +7608,11 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function..."
-msgstr ""
+msgstr "Pumunta sa Punsyon..."
#: editor/plugins/script_text_editor.cpp
msgid "Go to Line..."
-msgstr ""
+msgstr "Pumunta sa Linya..."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -7930,7 +7943,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8808,6 +8826,11 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Baguhin ang Pangalan ng Resource"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8857,6 +8880,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Magdagdag ng Bagong Uri ng Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Ibahin ang Punong-Uri"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Ibahin ang Punong-Uri"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Ipakita ang Karaniwan"
@@ -8873,8 +8910,19 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Magdagdag ng Bagong Uri ng Item"
+#, fuzzy
+msgid "Base Type"
+msgstr "Ibahin ang Punong-Uri"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9559,18 +9607,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Mga Tugma:"
@@ -10922,47 +10958,47 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Scan"
-msgstr ""
+msgstr "Maghanap"
#: editor/project_manager.cpp
msgid "Scan Projects"
-msgstr ""
+msgstr "Maghanap ng mga Proyekto"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
-msgstr ""
+msgstr "Pumili ng Folder na Paghahanapan"
#: editor/project_manager.cpp
msgid "New Project"
-msgstr ""
+msgstr "Bagong Proyekto"
#: editor/project_manager.cpp
msgid "Import Project"
-msgstr ""
+msgstr "Mag-angkat ng Proyekto"
#: editor/project_manager.cpp
msgid "Remove Project"
-msgstr ""
+msgstr "Alisin ang Proyekto"
#: editor/project_manager.cpp
msgid "Remove Missing"
-msgstr ""
+msgstr "Alisin ang Nawawala"
#: editor/project_manager.cpp
msgid "About"
-msgstr "Tungkol sa Godot"
+msgstr "Tungkol dito"
#: editor/project_manager.cpp
msgid "Asset Library Projects"
-msgstr ""
+msgstr "Mga Proyekto mula sa Asset Library"
#: editor/project_manager.cpp
msgid "Restart Now"
-msgstr ""
+msgstr "I-restart"
#: editor/project_manager.cpp
msgid "Remove All"
-msgstr ""
+msgstr "Alisin Lahat"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
@@ -10970,17 +11006,20 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Can't run project"
-msgstr ""
+msgstr "Hindi mapatakbo ang proyekto"
#: editor/project_manager.cpp
msgid ""
"You currently don't have any projects.\n"
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
+"Kasalukuyang wala ka pang mga proyekto.\n"
+"Gusto mo bang pumunta sa mga opisyal na halimbawang proyekto sa Asset "
+"Library?"
#: editor/project_manager.cpp
msgid "Filter projects"
-msgstr ""
+msgstr "Salain ang mga proyekto"
#: editor/project_manager.cpp
msgid ""
@@ -10988,6 +11027,10 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"Ang patlang na ito ay nagsasala sa mga proyekto ayon sa pangalan at hulihang "
+"path component. \n"
+"Upang sumala ng mga proyekto ayon sa pangalan at full path, dapat mayroong "
+"kahit isang '/' na karakter sa paghahanap."
#: editor/project_settings_editor.cpp
msgid "Physical Key"
@@ -12136,6 +12179,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Salain ang mga hudyat"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -12153,7 +12201,7 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Monitors"
-msgstr ""
+msgstr "Mga Tagasubaybay"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
@@ -13010,30 +13058,28 @@ msgid "Edit Member"
msgstr "Ayusin ang Kasapi"
#: modules/visual_script/visual_script_expression.cpp
-#, fuzzy
msgid "Expression"
-msgstr "Ibahin ang Ekspresyon"
+msgstr "Ekspresyon"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Return"
msgstr ""
#: modules/visual_script/visual_script_flow_control.cpp
-#, fuzzy
msgid "Condition"
-msgstr "animation"
+msgstr "Kondisyon"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "if (cond) is:"
-msgstr ""
+msgstr "if (kondisyon) ay:"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "While"
-msgstr ""
+msgstr "While"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "while (cond):"
-msgstr ""
+msgstr "while (kondisyon):"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator"
@@ -13045,11 +13091,11 @@ msgstr ""
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr ""
+msgstr "Hindi iterable ang uri ng input: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr ""
+msgstr "Naging invalid ang Iterator"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
@@ -13065,7 +13111,7 @@ msgstr ""
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Switch"
-msgstr ""
+msgstr "Switch"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "'input' is:"
@@ -13078,7 +13124,7 @@ msgstr "Mga Uri:"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Is %s?"
-msgstr ""
+msgstr "%s ba?"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "On %s"
@@ -13351,7 +13397,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Exporting APK..."
-msgstr ""
+msgstr "Iniluluwas ang APK..."
#: platform/android/export/export_plugin.cpp
msgid "Uninstalling..."
@@ -13367,7 +13413,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Running on device..."
-msgstr ""
+msgstr "Tumatakbo sa device..."
#: platform/android/export/export_plugin.cpp
msgid "Could not execute on device."
@@ -13433,7 +13479,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Invalid public key for APK expansion."
-msgstr ""
+msgstr "Di-wastong public key para sa APK expansion."
#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
@@ -13443,6 +13489,9 @@ msgstr "Di-wastong pangalan para sa pakete:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
@@ -13504,11 +13553,11 @@ msgstr "nagbalik ng may pagkakabigong #%d ang 'apksigner'"
#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
-msgstr ""
+msgstr "Pinapatunayan ang %s..."
#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "Nabigo ang pagpapatunay ng 'apksigner' ng %s."
#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
@@ -13561,7 +13610,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Building Android Project (gradle)"
-msgstr ""
+msgstr "Binibuild ang Android Project (gradle)"
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13585,13 +13634,15 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Creating APK..."
-msgstr ""
+msgstr "Nililikha ang APK..."
#: platform/android/export/export_plugin.cpp
msgid ""
"Could not find template APK to export:\n"
"%s"
msgstr ""
+"Walang mahanap na template APK upang iluwas:\n"
+"%s"
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13603,11 +13654,11 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Adding files..."
-msgstr ""
+msgstr "Dinadagdag ang mga file..."
#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
-msgstr ""
+msgstr "Hindi mai-luwas ang mga project file"
#: platform/android/export/export_plugin.cpp
msgid "Aligning APK..."
@@ -13635,11 +13686,11 @@ msgstr ""
#: platform/javascript/export/export.cpp
msgid "Stop HTTP Server"
-msgstr ""
+msgstr "Ihinto ang HTTP Server"
#: platform/javascript/export/export.cpp
msgid "Run in Browser"
-msgstr ""
+msgstr "Patakbuhin sa Browser"
#: platform/javascript/export/export.cpp
msgid "Run exported HTML in the system's default browser."
@@ -13703,9 +13754,8 @@ msgid "Failed to extract thin binary."
msgstr ""
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Di-wastong pangalan."
+msgstr "Di-wastong binary format."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 87535e17f4..81253d421c 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -1539,6 +1539,11 @@ msgstr "Varsayılan Bus Yerleşim Düzenini Yükle."
msgid "Create a new Bus Layout."
msgstr "Yeni bir Bus Yerleşim Düzeni oluştur."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Audio Bus Yerleşim Düzenini Aç"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Geçersiz ad."
@@ -2981,7 +2986,7 @@ msgstr "Dikkat-Dağıtmayan Kipine geç."
msgid "Add a new scene."
msgstr "Yeni bir sahne ekle."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Sahne"
@@ -5756,6 +5761,10 @@ msgid "Bake Lightmaps"
msgstr "Işık-Haritalarını Pişir"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Işık Haritası pişirme dosyası seçiniz:"
@@ -8235,7 +8244,13 @@ msgid "Cinematic Preview"
msgstr "Sinematik Önizleme"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "GLES2 işleyici kullanılırken kullanılamaz."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9130,6 +9145,11 @@ msgid "Select Another Theme Resource:"
msgstr "Başka Bir Tema Kaynağı Seçin:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Kaynağı Yeniden Adlandır"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Başka Bir Tema"
@@ -9178,6 +9198,20 @@ msgstr ""
"tipteki diğer tüm StyleBox'larda aynı özellikleri güncelleyecektir."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Öğe Türü Ekle"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Değişken Tipini Ayarla"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Temel Tipi Değiştir"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Varsayılanı Göster"
@@ -9194,8 +9228,19 @@ 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"
+#, fuzzy
+msgid "Base Type"
+msgstr "Temel Tipi Değiştir"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9899,18 +9944,6 @@ msgid "Commit list size"
msgstr "İşlem listesi boyutu"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Dallar"
@@ -12642,6 +12675,11 @@ msgid "Stack Frames"
msgstr "Çerçeveleri Yığ"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Döşemelerde Bul"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Kesitçi"
@@ -13963,9 +14001,10 @@ msgstr "Geçersiz paket ismi:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Geçersiz \"GodotPaymentV3\" modülü \"android/modüller\" proje ayarına dahil "
-"edildi (Godot 3.2.2'de değiştirildi).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/tt.po b/editor/translations/tt.po
index 8459c61d41..afad464d26 100644
--- a/editor/translations/tt.po
+++ b/editor/translations/tt.po
@@ -1438,6 +1438,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2787,7 +2791,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5429,6 +5433,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7854,7 +7862,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8729,6 +8742,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8775,6 +8792,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8791,7 +8820,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9469,18 +9508,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12034,6 +12061,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13317,6 +13348,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po
index 3b2ebd6275..478dc7420f 100644
--- a/editor/translations/tzm.po
+++ b/editor/translations/tzm.po
@@ -1436,6 +1436,10 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus Layout"
+msgstr ""
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2785,7 +2789,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5427,6 +5431,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr ""
@@ -7852,7 +7860,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8727,6 +8740,10 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme Resource"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -8773,6 +8790,18 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Variation Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Set Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8789,7 +8818,17 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Base Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9465,18 +9504,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12030,6 +12057,10 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+msgid "Filter stack variables"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13313,6 +13344,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index 63a2ecc734..d5e68f8a84 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -23,7 +23,7 @@ msgstr ""
"Project-Id-Version: Ukrainian (Godot Engine)\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2022-01-24 02:05+0000\n"
+"PO-Revision-Date: 2022-02-16 16:36+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
@@ -1497,6 +1497,11 @@ msgstr "Завантажити типове компонування шини."
msgid "Create a new Bus Layout."
msgstr "Створення нового компонування шини."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Відкрити компонування аудіо шини"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Некоректна назва."
@@ -2117,7 +2122,6 @@ msgstr "Клас:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Inherits:"
msgstr "Успадковує:"
@@ -2884,9 +2888,8 @@ msgstr "Видалити компонування"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Default"
-msgstr "За замовчуванням"
+msgstr "Типовий"
#: editor/editor_node.cpp editor/editor_resource_picker.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
@@ -2949,7 +2952,7 @@ msgstr "Перемкнути режим без відволікання."
msgid "Add a new scene."
msgstr "Додати нову сцену."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Сцена"
@@ -3325,14 +3328,12 @@ msgid "Update Continuously"
msgstr "Оновлювати неперервно"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "Оновлювати при зміні"
+msgstr "Оновити усі зміни"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "Зміни матеріалу:"
+msgstr "Оновити критичні зміни"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4111,6 +4112,11 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"Цей суфікс назв файлів не розпізнано редактором.\n"
+"Якщо ви хочете виконати перейменування попри це, скористайтеся програмою для "
+"керування файлами операційної системи.\n"
+"Після перейменовування із застосуванням невідомого суфікса назви, редактор "
+"більше не показуватиме файл у списку."
#: editor/filesystem_dock.cpp
msgid ""
@@ -5731,6 +5737,10 @@ msgid "Bake Lightmaps"
msgstr "Запікати карти освітлення"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "Виберіть файл приготування карти освітлення:"
@@ -8218,7 +8228,13 @@ msgid "Cinematic Preview"
msgstr "Кінематичний перегляд"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Є недоступним, якщо використовується обробник GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9115,6 +9131,11 @@ msgid "Select Another Theme Resource:"
msgstr "Виберіть ресурс іншої теми:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "Перейменувати ресурс"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "Інша тема"
@@ -9164,6 +9185,20 @@ msgstr ""
"цього типу."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Додати тип запису"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "Встановити тип змінної"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Змінити базовий тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показати типовий"
@@ -9181,8 +9216,19 @@ msgid "Override all default type items."
msgstr "Перевизначити усі записи стандартних типів."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Додати тип запису"
+#, fuzzy
+msgid "Base Type"
+msgstr "Змінити базовий тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9890,18 +9936,6 @@ msgid "Commit list size"
msgstr "Розмір списку внеску"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "Гілки"
@@ -12655,6 +12689,11 @@ msgid "Stack Frames"
msgstr "Стосувати кадри"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Фільтрувати плитки"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "Засіб профілювання"
@@ -12828,14 +12867,12 @@ msgid "Set Occluder Sphere Position"
msgstr "Встановити позицію сфери закупорювання"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Polygon Point Position"
-msgstr "Задати положення точки порталу"
+msgstr "Задати розташування точки затінювального багатокутника"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Hole Point Position"
-msgstr "Задати положення точки кривої"
+msgstr "Задати розташування точки отвору затінювання"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -13978,9 +14015,10 @@ msgstr "Некоректна назва пакунка:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Некоректний модуль «GodotPaymentV3» включено до параметрів проєкту «android/"
-"modules» (змінено у Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -14250,166 +14288,167 @@ msgstr "Помилка під час спроби запуску сервера
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "Не вдалося отримати доступ до файлової системи."
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "Не вдалося отримати хеш-суму Info.plist."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "Некоректна назва проєкту."
+msgstr "Некоректний вміст Info.plist — немає назви виконуваного файла."
#: platform/osx/export/codesign.cpp
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "Некоректний вміст Info.plist — немає ідентифікатора комплекту."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "Некоректна геометрія, неможливо створити багатокутник."
+msgstr "Некоректний вміст Info.plist — не вдалося завантажити."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "Неможливо створити теку."
+msgstr "Не вдалося створити підтеку «%s»."
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
-msgstr ""
+msgstr "Не вдалося видобути «тонкі» двійкові дані."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "Некоректний базовий шлях."
+msgstr "Некоректний формат двійкових даних."
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "Вже підписано!"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to process nested resources."
-msgstr "Не вдалося завантажити ресурс."
+msgstr "Не вдалося обробити вкладені ресурси."
#: platform/osx/export/codesign.cpp
msgid "Failed to create _CodeSignature subfolder."
-msgstr ""
+msgstr "Не вдалося створити підтеку _CodeSignature."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to get CodeResources hash."
-msgstr "Не вдалося завантажити ресурс."
+msgstr "Не вдалося отримати хеш-суму CodeResources."
#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid entitlements file."
-msgstr "Некоректний суфікс."
+msgstr "Некоректний файл найменувань."
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "Некоректний суфікс."
+msgstr "Некоректний виконуваний файл."
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
-msgstr ""
+msgstr "Не вдалося змінити розмір команди завантаження підпису."
#: platform/osx/export/codesign.cpp
msgid "Failed to create fat binary."
-msgstr ""
+msgstr "Не вдалося створити «товсті» двійкові дані."
#: platform/osx/export/codesign.cpp
msgid "Unknown bundle type."
-msgstr ""
+msgstr "Невідомий тип комплекту."
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "Невідомий тип об'єктів."
#: platform/osx/export/export.cpp
msgid ""
"Note: The notarization process generally takes less than an hour. When the "
"process is completed, you'll receive an email."
msgstr ""
+"Зауваження: процедура засвідчення, загалом, триває не більше години. Щойно "
+"процедуру буде завершено, ви отримаєте повідомлення електронною поштою."
#: platform/osx/export/export.cpp
msgid ""
"You can check progress manually by opening a Terminal and running the "
"following command:"
msgstr ""
+"Ви можете стежити за поступом вручну — відкрийте термінал і віддайте у ньому "
+"таку команду:"
#: platform/osx/export/export.cpp
msgid ""
"Run the following command to staple the notarization ticket to the exported "
"application (optional):"
msgstr ""
+"Віддайте таку команду для долучення квитка засвідчення до експортованої "
+"програми (необов'язкова процедура):"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "Піктограм не знайдено."
+msgstr "Не знайдено профілю."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Creating app bundle"
-msgstr "Створюємо мініатюру"
+msgstr "Створюємо комплект програми"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"Не вдалося знайти шаблон APK для експортування:\n"
-"%s"
+msgstr "Не вдалося знайти програму-шаблон для експортування:"
#: platform/osx/export/export.cpp
msgid ""
"Relative symlinks are not supported on this OS, the exported project might "
"be broken!"
msgstr ""
+"У цій операційній системі не передбачено підтримки відносних символічних "
+"посилань. Експортований проєкт може виявитися непрацездатним!"
#: platform/osx/export/export.cpp
msgid ""
"Requested template binary '%s' not found. It might be missing from your "
"template archive."
msgstr ""
+"Не знайдено двійкового файла шаблона «%s». Ймовірно, його немає у вашому "
+"архіві шаблона."
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "Створюємо PKG"
#: platform/osx/export/export.cpp
msgid ""
"Ad-hoc signed applications require the 'Disable Library Validation' "
"entitlement to load dynamic libraries."
msgstr ""
+"Для одноразово підписаних програм потрібен параметр «Вимкнути перевірку "
+"бібліотек» для завантаження динамічних бібліотек."
#: platform/osx/export/export.cpp
msgid "Code signing bundle"
-msgstr ""
+msgstr "Комплект із підписуванням коду"
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "Створюємо DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
-msgstr ""
+msgstr "DMG із підписуванням коду"
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "Створюємо ZIP"
#: platform/osx/export/export.cpp
msgid ""
"Notarization requires the app to be archived first, select the DMG or ZIP "
"export format instead."
msgstr ""
+"Для засвідчення програму слід спочатку архівувати. Виберіть замість "
+"поточного формат експортування DMG або ZIP."
#: platform/osx/export/export.cpp
msgid "Sending archive for notarization"
-msgstr ""
+msgstr "Надсилаємо архів для засвідчення"
#: platform/osx/export/export.cpp
msgid "Invalid bundle identifier:"
@@ -14420,31 +14459,36 @@ msgid ""
"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
"signing is limited to ad-hoc signature only."
msgstr ""
+"Попередження: у параметрах редактора вибрано вбудований «codesign». "
+"Підписування коду обмежено одноразовим підписом."
#: platform/osx/export/export.cpp
msgid ""
"Warning: Xcode command line tools are not installed, using built-in "
"\"codesign\". Code signing is limited to ad-hoc signature only."
msgstr ""
+"Попередження: не встановлено інструменти командного рядка Xcode, "
+"використовуємо вбудований «codesign». Підписування коду обмежено одноразовим "
+"підписом."
#: platform/osx/export/export.cpp
msgid "Notarization: Notarization with an ad-hoc signature is not supported."
msgstr ""
+"Засвідчення: підтримки засвідчення із одноразовим підписом не передбачено."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Code signing is required for notarization."
-msgstr "Засвідчення: потрібен код підписування."
+msgstr "Засвідчення: для засвідчення потрібне підписування коду."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Hardened runtime is required for notarization."
-msgstr "Засвідчення: потрібне стійке середовище запуску."
+msgstr "Засвідчення: для засвідчення потрібне стійке середовище запуску."
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Timestamp runtime is required for notarization."
-msgstr "Засвідчення: потрібне стійке середовище запуску."
+msgstr ""
+"Засвідчення: для засвідчення потрібне середовище запуску із часовими "
+"позначками."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
@@ -14459,63 +14503,86 @@ msgid ""
"Warning: Notarization is disabled. The exported project will be blocked by "
"Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Попередження: засвідчення вимкнено. Експортований проєкт буде заблоковано "
+"Gatekeeper, якщо його отримано з невідомого джерела."
#: platform/osx/export/export.cpp
msgid ""
"Code signing is disabled. The exported project will not run on Macs with "
"enabled Gatekeeper and Apple Silicon powered Macs."
msgstr ""
+"Підписування коду вимкнено. Експортований проєкт не запускатиметься на Macіз "
+"Gatekeeper та Mac на основі Apple Silicon."
#: platform/osx/export/export.cpp
msgid ""
"Hardened Runtime is not compatible with ad-hoc signature, and will be "
"disabled!"
msgstr ""
+"Стійке середовище запуску є несумісним із одноразовим підписом — його буде "
+"вимкнено!"
#: platform/osx/export/export.cpp
msgid ""
"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
msgstr ""
+"Використання часових позначок є несумісним із одноразовим підписом — його "
+"буде вимкнено!"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Notarization is not supported from this OS. The exported project "
"will be blocked by Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"Попередження: підтримки засвідчення у цій операційній системі не "
+"передбачено. Експортований проєкт буде заблоковано Gatekeeper, якщо його "
+"отримано із невідомого джерела."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
msgstr ""
+"Конфіденційність: увімкнено доступ до мікрофона, але опис використання не "
+"вказано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
msgstr ""
+"Конфіденційність: увімкнено доступ до камери, але опис використання не "
+"вказано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
msgstr ""
+"Конфіденційність: увімкнено доступ до даних щодо місця перебування, але опис "
+"використання не вказано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
msgstr ""
+"Конфіденційність: увімкнено доступ до адресної книги, але опис використання "
+"не вказано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
msgstr ""
+"Конфіденційність: увімкнено доступ до календаря, але опис використання не "
+"вказано."
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Photo library access is enabled, but usage description is not "
"specified."
msgstr ""
+"Конфіденційність: увімкнено доступ до бібліотеки фотографій, але опис "
+"використання не вказано."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14584,21 +14651,21 @@ msgid ""
"The rcedit tool must be configured in the Editor Settings (Export > Windows "
"> Rcedit) to change the icon or app information data."
msgstr ""
+"Щоб мати змогу змінювати піктограму або дані щодо програми, має бути "
+"налаштовано інструмент rcedit у параметрах редактора (Експорт > Windows > "
+"Rcedit)."
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "Неправильний шлях."
+msgstr "Некоректний шлях до піктограм:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "Некоректний суфікс."
+msgstr "Некоректна версія файла:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "Некоректний GUID продукту."
+msgstr "Некоректна версія продукту:"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -15344,14 +15411,13 @@ msgstr ""
"Цей вузол вважається застарілим. Скористайтеся замість нього AnimationTree."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Apply color\n"
"RMB: Remove preset"
msgstr ""
"Колір: #%s\n"
-"Ліва кнопка: встановити колір\n"
+"Ліва кнопка: застосувати колір\n"
"Права кнопка: вилучити взірець"
#: scene/gui/color_picker.cpp
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 90156465b3..3febf6aebe 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -1463,6 +1463,11 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr ".تمام کا انتخاب"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr ""
@@ -2844,7 +2849,7 @@ msgstr ""
msgid "Add a new scene."
msgstr ""
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr ""
@@ -5555,6 +5560,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr ".تمام کا انتخاب"
@@ -8061,7 +8070,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8979,6 +8993,11 @@ msgid "Select Another Theme Resource:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr ""
@@ -9026,6 +9045,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -9042,7 +9075,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -9769,18 +9813,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr ""
@@ -12395,6 +12427,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "سب سکریپشن بنائیں"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -13739,6 +13776,9 @@ msgstr ""
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index 12cb91b7f9..3590c07d79 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -18,14 +18,14 @@
# LetterC67 <hoangdeptoong@gmail.com>, 2020, 2021.
# Rev <revolnoom7801@gmail.com>, 2021.
# SyliawDeV <thanhlongstranger@gmail.com>, 2021.
-# IoeCmcomc <hopdaigia2004@gmail.com>, 2021.
+# IoeCmcomc <hopdaigia2004@gmail.com>, 2021, 2022.
# Hung <hungthitkhia@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-09-15 00:46+0000\n"
+"PO-Revision-Date: 2022-02-26 10:27+0000\n"
"Last-Translator: IoeCmcomc <hopdaigia2004@gmail.com>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/"
"godot/vi/>\n"
@@ -34,7 +34,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.9-dev\n"
+"X-Generator: Weblate 4.11.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -815,7 +815,7 @@ msgid ""
"target node."
msgstr ""
"Phương thức không được tìm thấy. Chỉ định phương thức hợp lệ hoặc đính kèm "
-"tệp lệnh vào nút."
+"tập lệnh vào nút."
#: editor/connections_dialog.cpp
msgid "Connect to Node:"
@@ -1495,6 +1495,11 @@ msgstr "Nạp bố cục Bus mặc định."
msgid "Create a new Bus Layout."
msgstr "Tạo bố cục Bus mới."
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "Mở bố cục Bus âm thanh"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "Tên không hợp lệ."
@@ -2103,7 +2108,7 @@ msgstr "Lớp:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Inherits:"
-msgstr "Thừa kế:"
+msgstr "Kế thừa:"
#: editor/editor_help.cpp
msgid "Inherited by:"
@@ -2145,7 +2150,7 @@ msgstr "Màu"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constants"
-msgstr "Hằng số"
+msgstr "Hằng"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -2924,7 +2929,7 @@ msgstr "Bật tắt chế độ tập trung."
msgid "Add a new scene."
msgstr "Thêm cảnh mới."
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "Cảnh"
@@ -5674,6 +5679,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "Chọn tệp bake lightmap:"
@@ -8203,7 +8212,13 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "Không khả dụng khi sử dụng trình kết xuất GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9145,6 +9160,11 @@ msgstr "Xóa tài nguyên"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "Đổi tên tài nguyên"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "Nhập Tông màu"
@@ -9199,6 +9219,21 @@ 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 "Set Variation Base Type"
+msgstr "Đặt loại biến"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "Thay đổi loại cơ sở"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Show Default"
msgstr "Nạp mặc định"
@@ -9217,8 +9252,18 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Item Type"
-msgstr "Thêm mục"
+msgid "Base Type"
+msgstr "Thay đổi loại cơ sở"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9934,18 +9979,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "Phù hợp:"
@@ -10056,7 +10089,7 @@ msgstr "Tỷ lệ"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector"
-msgstr "Vector"
+msgstr "Véc tơ"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean"
@@ -10178,11 +10211,11 @@ msgstr "hàm đen trắng"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
-msgstr "Chuyển vector màu HSV sang RGB tương ứng."
+msgstr "Chuyển véc tơ màu HSV sang RGB tương ứng."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts RGB vector to HSV equivalent."
-msgstr "Chuyển vector màu RGB sang HSV tương ứng."
+msgstr "Chuyển véc tơ màu RGB sang HSV tương ứng."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sepia function."
@@ -10622,16 +10655,16 @@ msgid ""
"whose number of rows is the number of components in 'c' and whose number of "
"columns is the number of components in 'r'."
msgstr ""
-"Tính tích ngoài của một cặp vector.\n"
+"Tính tích ngoài của một cặp véc tơ.\n"
"\n"
-"Tích ngoài đặt tham số 'c' đầu tiên làm vector dọc (ma trận 1 cột) và tham "
-"số 'h' thứ hai là vector ngang (ma trận 1 hàng) rồi thực hiện phép nhân ma "
-"trận tuyến tính 'c * h', tạo ra ma trận có số hàng bằng số phần tử trong 'h' "
-"và số cột bằng số phần tử trong 'c'."
+"Tích ngoài coi tham số 'c' đầu tiên là véc tơ dọc (ma trận 1 cột) và tham số "
+"'h' thứ hai là véc tơ ngang (ma trận 1 hàng) rồi thực hiện phép nhân ma trận "
+"tuyến tính 'c * h', tạo ra ma trận có số hàng bằng số phần tử trong 'h' và "
+"số cột bằng số phần tử trong 'c'."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes transform from four vectors."
-msgstr "Tạo phép biến đổi từ 4 vector."
+msgstr "Tạo phép biến đổi từ 4 véc tơ."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Decomposes transform to four vectors."
@@ -10655,7 +10688,7 @@ msgstr "Nhân hai phép biến đổi."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies vector by transform."
-msgstr "Nhân vector với phép biến đổi."
+msgstr "Nhân véc tơ với phép biến đổi."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform constant."
@@ -10668,11 +10701,11 @@ msgstr "Tạo"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector function."
-msgstr "Hàm Vector."
+msgstr "Hàm véc tơ."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector operator."
-msgstr ""
+msgstr "Toán tử véc tơ."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes vector from three scalars."
@@ -10680,7 +10713,7 @@ msgstr "Tạo vector từ ba giá trị vô hướng."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Decomposes vector to three scalars."
-msgstr "Tách vector thành ba giá trị vô hướng."
+msgstr "Tách véc tơ thành ba giá trị vô hướng."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the cross product of two vectors."
@@ -10692,7 +10725,7 @@ msgstr "Trả về khoảng cách giữa hai điểm."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the dot product of two vectors."
-msgstr "Tính tích vô hướng của hai vector."
+msgstr "Tính tích vô hướng của hai véc tơ."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -10704,7 +10737,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the length of a vector."
-msgstr "Tính chiều dài vector."
+msgstr "Tính chiều dài của một véc tơ."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Linear interpolation between two vectors."
@@ -10716,27 +10749,27 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the normalize product of vector."
-msgstr "Tính tích chuẩn hóa của vector."
+msgstr "Tính tích chuẩn hóa của véc tơ."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 - vector"
-msgstr "1.0 - vector"
+msgstr "1.0 - véc tơ"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 / vector"
-msgstr "1.0 / vector"
+msgstr "1.0 / véc tơ"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the vector that points in the direction of reflection ( a : incident "
"vector, b : normal vector )."
msgstr ""
-"Trả về vector chỉ hướng phản xạ ( a : vector tia tới, b : vector pháp "
+"Trả về véc tơ chỉ hướng phản xạ ( a : vector tia tới, b : vector pháp "
"tuyến )."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the vector that points in the direction of refraction."
-msgstr "Trả về vector chỉ hướng khúc xạ."
+msgstr "Trả về véc tơ chỉ theo hướng khúc xạ."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -11879,7 +11912,7 @@ msgstr "Tên nút"
#: editor/rename_dialog.cpp
msgid "Node's parent name, if available"
-msgstr "Tên cha mẹ của nút, nếu có sẵn"
+msgstr "Tên của nút mẹ, nếu có sẵn"
#: editor/rename_dialog.cpp
msgid "Node type"
@@ -11981,7 +12014,7 @@ msgstr "Tại kí tự %s"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
-msgstr "Đổi cha mẹ của nút"
+msgstr "Đổi mẹ của nút"
#: editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
@@ -11993,7 +12026,7 @@ msgstr ""
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr "Đổi nút cha"
+msgstr "Đổi nút mẹ"
#: editor/run_settings_dialog.cpp
msgid "Run Mode:"
@@ -12063,11 +12096,11 @@ msgstr "Thao tác này không thể áp dụng lên gốc của cây."
#: editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
-msgstr "Chuyển nút trong cha mẹ"
+msgstr "Di chuyển nút trong nút mẹ"
#: editor/scene_tree_dock.cpp
msgid "Move Nodes In Parent"
-msgstr "Di chuyển các nút trong cha mẹ"
+msgstr "Di chuyển các nút trong nút mẹ"
#: editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
@@ -12076,8 +12109,8 @@ msgstr "Nhân đôi các nút"
#: editor/scene_tree_dock.cpp
msgid "Can't reparent nodes in inherited scenes, order of nodes can't change."
msgstr ""
-"Không thể đổi cha mẹ các nút trong cảnh kế thừa, thứ tự các nút không thể "
-"thay đổi."
+"Không thể đổi mẹ của các nút trong cảnh kế thừa, thứ tự các nút không thể "
+"được thay đổi."
#: editor/scene_tree_dock.cpp
msgid "Node must belong to the edited scene to become root."
@@ -12285,7 +12318,7 @@ msgstr "Đổi Kiểu"
#: editor/scene_tree_dock.cpp
msgid "Reparent to New Node"
-msgstr "Reparent đến nút mới"
+msgstr "Thay nút mẹ thành nút mới"
#: editor/scene_tree_dock.cpp
msgid "Make Scene Root"
@@ -12526,7 +12559,7 @@ msgstr "Tên Lớp không hợp lệ."
#: editor/script_create_dialog.cpp
msgid "Invalid inherited parent name or path."
-msgstr ""
+msgstr "Tên hoặc đường dẫn nút mẹ được kế thừa không hợp lệ."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -12663,6 +12696,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "Lọc ô"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14026,9 +14064,10 @@ msgstr "Tên gói không hợp lệ:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"Cài đặt dự án chứa module không hợp lệ \"GodotPaymentV3\" ở mục \"android/"
-"modules\" (đã thay đổi từ Godot 3.2.2).\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 0675b564d3..47b66ad06d 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -88,7 +88,7 @@ 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: 2022-02-12 21:43+0000\n"
+"PO-Revision-Date: 2022-03-08 15:20+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"
@@ -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.11-dev\n"
+"X-Generator: Weblate 4.12-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -683,7 +683,7 @@ msgstr "优化动画"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
-msgstr "清空动画"
+msgstr "清理动画"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
@@ -723,19 +723,19 @@ msgstr "移除无效帧"
#: editor/animation_track_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr "移除未分解的空轨道"
+msgstr "移除无法解析的轨道和空轨道"
#: editor/animation_track_editor.cpp
msgid "Clean-up all animations"
-msgstr "清除所有动画"
+msgstr "清理所有动画"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr "清除动画(无法撤销!)"
+msgstr "清理动画(无法撤销!)"
#: editor/animation_track_editor.cpp
msgid "Clean-Up"
-msgstr "清空"
+msgstr "清理"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
@@ -1538,6 +1538,11 @@ msgstr "加载默认总线布局。"
msgid "Create a new Bus Layout."
msgstr "创建新的总线布局。"
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "打开音频总线布局"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "名称无效。"
@@ -2930,7 +2935,7 @@ msgstr "切换专注模式。"
msgid "Add a new scene."
msgstr "添加新场景。"
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "场景"
@@ -3290,14 +3295,12 @@ msgid "Update Continuously"
msgstr "持续更新"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update All Changes"
-msgstr "当有更改时更新"
+msgstr "更新所有修改"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Vital Changes"
-msgstr "材质变更:"
+msgstr "更新关键修改"
#: editor/editor_node.cpp
msgid "Hide Update Spinner"
@@ -4050,6 +4053,9 @@ msgid ""
"After renaming to an unknown extension, the file won't be shown in the "
"editor anymore."
msgstr ""
+"编辑器无法识别该文件扩展名。\n"
+"如果你仍要重命名,请使用操作系统的文件管理器。\n"
+"在重命名为未知扩展名后,改文件不会再在编辑器中显示。"
#: editor/filesystem_dock.cpp
msgid ""
@@ -5135,7 +5141,7 @@ msgstr "接下来(自动队列):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
-msgstr "跨动画时间混合"
+msgstr "跨动画混合时间"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Move Node"
@@ -5638,6 +5644,10 @@ msgid "Bake Lightmaps"
msgstr "烘焙光照贴图"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "选择光照贴图烘焙文件:"
@@ -8094,7 +8104,13 @@ msgid "Cinematic Preview"
msgstr "效果预览"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "使用 GLES2 渲染器时不可用。"
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8982,6 +8998,11 @@ msgid "Select Another Theme Resource:"
msgstr "选择其他主题资源:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "重命名资源"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "其他主题"
@@ -9029,6 +9050,20 @@ msgstr ""
"将此样式盒置顶为主样式。编辑其属性会更新该类型下其他所有样式盒的相同属性。"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "添加项目类型"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "设置变量类型"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "修改基础类型"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "显示默认"
@@ -9045,8 +9080,19 @@ msgid "Override all default type items."
msgstr "覆盖所有默认类型项目。"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "添加项目类型"
+#, fuzzy
+msgid "Base Type"
+msgstr "修改基础类型"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9739,18 +9785,6 @@ msgid "Commit list size"
msgstr "提交列表大小"
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr "10"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr "20"
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr "30"
-
-#: editor/plugins/version_control_editor_plugin.cpp
msgid "Branches"
msgstr "分支"
@@ -12415,6 +12449,11 @@ msgid "Stack Frames"
msgstr "栈帧"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "筛选图块"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "性能分析器"
@@ -12588,14 +12627,12 @@ msgid "Set Occluder Sphere Position"
msgstr "设置遮挡球体位置"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Polygon Point Position"
-msgstr "设置入口顶点位置"
+msgstr "设置遮挡多边形顶点位置"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Set Occluder Hole Point Position"
-msgstr "设置曲线的顶点位置"
+msgstr "设置遮挡空洞顶点位置"
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
@@ -13705,9 +13742,10 @@ msgstr "无效的包名称:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"“android/modules” 项目设置(变更于Godot 3.2.2)中包含了无效模组 "
-"“GodotPaymentV3”。\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
@@ -13952,166 +13990,153 @@ msgstr "启动 HTTP 服务器时出错:"
#: platform/osx/export/codesign.cpp
msgid "Can't get filesystem access."
-msgstr ""
+msgstr "无法访问文件系统。"
#: platform/osx/export/codesign.cpp
msgid "Failed to get Info.plist hash."
-msgstr ""
+msgstr "获取 Info.plist 哈希失败。"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, no exe name."
-msgstr "项目名称无效。"
+msgstr "Info.plist 无效,没有可执行文件名称。"
#: platform/osx/export/codesign.cpp
msgid "Invalid Info.plist, no bundle id."
-msgstr ""
+msgstr "Info.plist 无效,没有捆绑包 ID。"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid Info.plist, can't load."
-msgstr "无效的几何体,无法创建多边形。"
+msgstr "Info.plist 无效,无法加载。"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to create \"%s\" subfolder."
-msgstr "无法创建文件夹。"
+msgstr "创建“%s”子文件夹失败。"
#: platform/osx/export/codesign.cpp
msgid "Failed to extract thin binary."
-msgstr ""
+msgstr "提取瘦二进制文件失败。"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid binary format."
-msgstr "无效的基本路径。"
+msgstr "二进制格式无效。"
#: platform/osx/export/codesign.cpp
msgid "Already signed!"
-msgstr ""
+msgstr "签名已存在!"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to process nested resources."
-msgstr "加载资源失败。"
+msgstr "处理嵌套资源失败。"
#: platform/osx/export/codesign.cpp
msgid "Failed to create _CodeSignature subfolder."
-msgstr ""
+msgstr "创建 _CodeSignature 子文件夹失败。"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Failed to get CodeResources hash."
-msgstr "加载资源失败。"
+msgstr "获取 CodeResources 哈希失败。"
#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid entitlements file."
-msgstr "扩展名无效。"
+msgstr "授权文件无效。"
#: platform/osx/export/codesign.cpp
-#, fuzzy
msgid "Invalid executable file."
-msgstr "扩展名无效。"
+msgstr "可执行文件无效。"
#: platform/osx/export/codesign.cpp
msgid "Can't resize signature load command."
-msgstr ""
+msgstr "无法改变签名加载命令的大小。"
#: platform/osx/export/codesign.cpp
msgid "Failed to create fat binary."
-msgstr ""
+msgstr "无法创建胖二进制。"
#: platform/osx/export/codesign.cpp
msgid "Unknown bundle type."
-msgstr ""
+msgstr "未知捆绑包类型。"
#: platform/osx/export/codesign.cpp
msgid "Unknown object type."
-msgstr ""
+msgstr "未知对象类型。"
#: platform/osx/export/export.cpp
msgid ""
"Note: The notarization process generally takes less than an hour. When the "
"process is completed, you'll receive an email."
-msgstr ""
+msgstr "注意:公证过程通常少于一个小时。过程结束后,你会收到一封邮件。"
#: platform/osx/export/export.cpp
msgid ""
"You can check progress manually by opening a Terminal and running the "
"following command:"
-msgstr ""
+msgstr "你可以手动检查进度,请打开终端并运行以下命令:"
#: platform/osx/export/export.cpp
msgid ""
"Run the following command to staple the notarization ticket to the exported "
"application (optional):"
-msgstr ""
+msgstr "运行以下命令将公证票证装订到导出的应用中(可选):"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "No identity found."
-msgstr "没有图标。"
+msgstr "没有找到身份。"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Creating app bundle"
-msgstr "正在创建缩略图"
+msgstr "正在创建应用捆绑包"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Could not find template app to export:"
-msgstr ""
-"找不到导出模板 APK:\n"
-"%s"
+msgstr "无法找到导出的模板应用:"
#: platform/osx/export/export.cpp
msgid ""
"Relative symlinks are not supported on this OS, the exported project might "
"be broken!"
-msgstr ""
+msgstr "该操作系统上不支持相对符号链接,导出的项目可能损坏!"
#: platform/osx/export/export.cpp
msgid ""
"Requested template binary '%s' not found. It might be missing from your "
"template archive."
-msgstr ""
+msgstr "未找到请求的二进制模板“%s”。你的模板归档中可能缺失该文件。"
#: platform/osx/export/export.cpp
msgid "Making PKG"
-msgstr ""
+msgstr "正在制作 PKG"
#: platform/osx/export/export.cpp
msgid ""
"Ad-hoc signed applications require the 'Disable Library Validation' "
"entitlement to load dynamic libraries."
-msgstr ""
+msgstr "Ad-hoc 签名的应用需要“Disable Library Validation”授权才能加载动态库。"
#: platform/osx/export/export.cpp
msgid "Code signing bundle"
-msgstr ""
+msgstr "正在对捆绑包进行代码签名"
#: platform/osx/export/export.cpp
msgid "Making DMG"
-msgstr ""
+msgstr "正在制作 DMG"
#: platform/osx/export/export.cpp
msgid "Code signing DMG"
-msgstr ""
+msgstr "正在对 DMG 进行代码签名"
#: platform/osx/export/export.cpp
msgid "Making ZIP"
-msgstr ""
+msgstr "正在制作 ZIP"
#: platform/osx/export/export.cpp
msgid ""
"Notarization requires the app to be archived first, select the DMG or ZIP "
"export format instead."
-msgstr ""
+msgstr "公证要求该应用先进行归档,请选择 DMG 或 ZIP 导出格式。"
#: platform/osx/export/export.cpp
msgid "Sending archive for notarization"
-msgstr ""
+msgstr "正在发送归档进行公证"
#: platform/osx/export/export.cpp
msgid "Invalid bundle identifier:"
@@ -14122,31 +14147,31 @@ msgid ""
"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code "
"signing is limited to ad-hoc signature only."
msgstr ""
+"警告:编辑器设置里选中的是内置的“codesign”。代码签名仅限于 ad-hoc 签名。"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Xcode command line tools are not installed, using built-in "
"\"codesign\". Code signing is limited to ad-hoc signature only."
msgstr ""
+"警告:未安装 Xcode 命令行工具,将使用内置的“codesign”。代码签名仅限于 ad-hoc "
+"签名。"
#: platform/osx/export/export.cpp
msgid "Notarization: Notarization with an ad-hoc signature is not supported."
-msgstr ""
+msgstr "公证:不支持使用 Ad-hoc 签名进行公证。"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Code signing is required for notarization."
-msgstr "公证:需要代码签名。"
+msgstr "公证:公证需要代码签名。"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Hardened runtime is required for notarization."
-msgstr "公证:需要加强的运行时环境。"
+msgstr "公证:公证需要加固运行时环境。"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Notarization: Timestamp runtime is required for notarization."
-msgstr "公证:需要加强的运行时环境。"
+msgstr "公证:公证需要时间戳运行时环境。"
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
@@ -14161,63 +14186,69 @@ msgid ""
"Warning: Notarization is disabled. The exported project will be blocked by "
"Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"警告:已禁用公证。如果从未知来源下载该导出后的项目,将被 Gatekeeper 阻止运"
+"行。"
#: platform/osx/export/export.cpp
msgid ""
"Code signing is disabled. The exported project will not run on Macs with "
"enabled Gatekeeper and Apple Silicon powered Macs."
msgstr ""
+"已禁用代码签名。导出后的项目将无法在启用 Gatekeeper 的 Mac 和使用 Apple "
+"Silicon 的 Mac 上运行。"
#: platform/osx/export/export.cpp
msgid ""
"Hardened Runtime is not compatible with ad-hoc signature, and will be "
"disabled!"
-msgstr ""
+msgstr "加固运行时环境与 Ad-hoc 签名不兼容,将被禁用!"
#: platform/osx/export/export.cpp
msgid ""
"Timestamping is not compatible with ad-hoc signature, and will be disabled!"
-msgstr ""
+msgstr "时间戳运行时环境与 Ad-hoc 签名不兼容,将被禁用!"
#: platform/osx/export/export.cpp
msgid ""
"Warning: Notarization is not supported from this OS. The exported project "
"will be blocked by Gatekeeper if it's downloaded from an unknown source."
msgstr ""
+"警告:不支持从该操作系统进行公证。如果从未知来源下载该导出后的项目,将被 "
+"Gatekeeper 阻止运行。"
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Microphone access is enabled, but usage description is not "
"specified."
-msgstr ""
+msgstr "隐私:已启用麦克风访问,但未指定用途描述。"
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Camera access is enabled, but usage description is not specified."
-msgstr ""
+msgstr "隐私:已启用相机访问,但未指定用途描述。"
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Location information access is enabled, but usage description is "
"not specified."
-msgstr ""
+msgstr "隐私:已启用位置信息访问,但未指定用途描述。"
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Address book access is enabled, but usage description is not "
"specified."
-msgstr ""
+msgstr "隐私:已启用地址簿访问,但未指定用途描述。"
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Calendar access is enabled, but usage description is not specified."
-msgstr ""
+msgstr "隐私:已启用日历访问,但未指定用途描述。"
#: platform/osx/export/export.cpp
msgid ""
"Privacy: Photo library access is enabled, but usage description is not "
"specified."
-msgstr ""
+msgstr "隐私:已启用照片库访问,但未指定用途描述。"
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14276,21 +14307,20 @@ msgid ""
"The rcedit tool must be configured in the Editor Settings (Export > Windows "
"> Rcedit) to change the icon or app information data."
msgstr ""
+"必须在编辑器设置中配置 rcedit 工具(Export > Windows > Rcedit)才能修改图标或"
+"应用信息数据。"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid icon path:"
-msgstr "路径无效。"
+msgstr "图标路径无效:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid file version:"
-msgstr "扩展名无效。"
+msgstr "文件版本无效:"
#: platform/windows/export/export.cpp
-#, fuzzy
msgid "Invalid product version:"
-msgstr "产品 GUID 无效。"
+msgstr "产品版本无效:"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -14967,14 +14997,13 @@ msgid "This node has been deprecated. Use AnimationTree instead."
msgstr "该节点已废弃。请使用 AnimationTree 代替。"
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid ""
"Color: #%s\n"
"LMB: Apply color\n"
"RMB: Remove preset"
msgstr ""
"颜色:#%s\n"
-"鼠标左键:设置颜色\n"
+"鼠标左键:应用颜色\n"
"鼠标右键:移除预设"
#: scene/gui/color_picker.cpp
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 3e58cca1e2..be7d27d9c9 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -1537,6 +1537,11 @@ msgstr ""
msgid "Create a new Bus Layout."
msgstr ""
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "編輯器佈局"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "無效名稱。"
@@ -2990,7 +2995,7 @@ msgstr ""
msgid "Add a new scene."
msgstr "新增軌迹"
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "場景"
@@ -5861,6 +5866,10 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
#, fuzzy
msgid "Select lightmap bake file:"
msgstr "選取Template檔案"
@@ -8447,7 +8456,12 @@ msgid "Cinematic Preview"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
@@ -9400,6 +9414,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Theme Resource"
+msgstr "資源"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Another Theme"
msgstr "檔案"
@@ -9452,6 +9471,20 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "更改動畫循環"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "更改動畫循環"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "預設"
@@ -9470,7 +9503,18 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+#, fuzzy
+msgid "Base Type"
+msgstr "更改動畫循環"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -10227,18 +10271,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "吻合:"
@@ -12956,6 +12988,11 @@ msgid "Stack Frames"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "篩選檔案..."
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr ""
@@ -14331,6 +14368,9 @@ msgstr "無效名稱"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
#: platform/android/export/export_plugin.cpp
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index e58704257e..15a32eaec6 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -1486,6 +1486,11 @@ msgstr "載入預設匯流排配置。"
msgid "Create a new Bus Layout."
msgstr "建立新匯流排配置。"
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Audio Bus Layout"
+msgstr "開啟音訊匯流排配置"
+
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
msgstr "無效的名稱。"
@@ -2885,7 +2890,7 @@ msgstr "切換/取消專注模式。"
msgid "Add a new scene."
msgstr "新增場景。"
-#: editor/editor_node.cpp
+#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Scene"
msgstr "場景"
@@ -5592,6 +5597,10 @@ msgid "Bake Lightmaps"
msgstr "烘焙光照圖"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "LightMap Bake"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Select lightmap bake file:"
msgstr "選擇光照圖烘焙檔案:"
@@ -8054,7 +8063,13 @@ msgid "Cinematic Preview"
msgstr "效果預覽"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Not available when using the GLES2 renderer."
+msgid "(Not in GLES2)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Debug draw modes are only available when using the GLES3 renderer, not GLES2."
msgstr "使用 GLES2 算繪引擎時無法使用。"
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8943,6 +8958,11 @@ msgid "Select Another Theme Resource:"
msgstr "選擇其他主題資源:"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Theme Resource"
+msgstr "重新命名資源"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Another Theme"
msgstr "其他主題"
@@ -8993,6 +9013,20 @@ msgstr ""
"釘選該樣式盒為主要樣式。編輯其屬性將更新所有其他同類別的樣式盒之相同屬性。"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "新增項目類型"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Variation Base Type"
+msgstr "設定變數型別"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Set Base Type"
+msgstr "更改基礎型別"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "顯示預設"
@@ -9009,8 +9043,19 @@ msgid "Override all default type items."
msgstr "複寫所有預設類別項目。"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "新增項目類型"
+#, fuzzy
+msgid "Base Type"
+msgstr "更改基礎型別"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Select the variation base type from a list of available types."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"A type associated with a built-in class cannot be marked as a variation of "
+"another type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
@@ -9718,18 +9763,6 @@ msgid "Commit list size"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-msgid "10"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "20"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
-msgid "30"
-msgstr ""
-
-#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Branches"
msgstr "符合條件:"
@@ -12401,6 +12434,11 @@ msgid "Stack Frames"
msgstr "堆疊框"
#: editor/script_editor_debugger.cpp
+#, fuzzy
+msgid "Filter stack variables"
+msgstr "篩選圖塊"
+
+#: editor/script_editor_debugger.cpp
msgid "Profiler"
msgstr "分析工具"
@@ -13725,9 +13763,10 @@ msgstr "無效的套件名稱:"
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
+"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n"
+"Note that the singleton was also renamed from \"GodotPayments\" to "
+"\"GodotGooglePlayBilling\"."
msgstr ""
-"「andoird/modules」專案設定中包含了無效的「GodotPaymentV3」模組(更改於 "
-"Godot 3.2.2)。\n"
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."