summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/SCsub5
-rw-r--r--editor/action_map_editor.cpp38
-rw-r--r--editor/animation_track_editor.cpp24
-rw-r--r--editor/code_editor.cpp267
-rw-r--r--editor/code_editor.h1
-rw-r--r--editor/create_dialog.cpp2
-rw-r--r--editor/editor_command_palette.cpp302
-rw-r--r--editor/editor_command_palette.h95
-rw-r--r--editor/editor_feature_profile.cpp2
-rw-r--r--editor/editor_help_search.cpp2
-rw-r--r--editor/editor_inspector.cpp7
-rw-r--r--editor/editor_layouts_dialog.cpp2
-rw-r--r--editor/editor_log.cpp2
-rw-r--r--editor/editor_native_shader_source_visualizer.cpp2
-rw-r--r--editor/editor_node.cpp153
-rw-r--r--editor/editor_node.h6
-rw-r--r--editor/editor_plugin.cpp5
-rw-r--r--editor/editor_plugin.h3
-rw-r--r--editor/editor_properties.cpp16
-rw-r--r--editor/editor_resource_picker.cpp41
-rw-r--r--editor/editor_resource_picker.h19
-rw-r--r--editor/editor_settings.cpp16
-rw-r--r--editor/editor_settings.h2
-rw-r--r--editor/editor_themes.cpp35
-rw-r--r--editor/export_template_manager.cpp4
-rw-r--r--editor/icons/GridLayout.svg1
-rw-r--r--editor/icons/PrismMesh.svg2
-rw-r--r--editor/icons/RayShape2D.svg1
-rw-r--r--editor/icons/RayShape3D.svg1
-rw-r--r--editor/import/editor_import_collada.cpp4
-rw-r--r--editor/import/resource_importer_layered_texture.cpp3
-rw-r--r--editor/import/resource_importer_scene.cpp6
-rw-r--r--editor/plugin_config_dialog.cpp2
-rw-r--r--editor/plugins/animation_blend_space_1d_editor.h2
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp2
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp121
-rw-r--r--editor/plugins/canvas_item_editor_plugin.h13
-rw-r--r--editor/plugins/collision_shape_2d_editor_plugin.cpp47
-rw-r--r--editor/plugins/collision_shape_2d_editor_plugin.h1
-rw-r--r--editor/plugins/editor_preview_plugins.cpp8
-rw-r--r--editor/plugins/gpu_particles_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/gpu_particles_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/node_3d_editor_gizmos.cpp128
-rw-r--r--editor/plugins/node_3d_editor_gizmos.h68
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp154
-rw-r--r--editor/plugins/node_3d_editor_plugin.h12
-rw-r--r--editor/plugins/path_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/path_3d_editor_plugin.h4
-rw-r--r--editor/plugins/script_editor_plugin.cpp4
-rw-r--r--editor/plugins/script_text_editor.cpp156
-rw-r--r--editor/plugins/shader_editor_plugin.cpp35
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/text_editor.cpp43
-rw-r--r--editor/plugins/texture_region_editor_plugin.cpp2
-rw-r--r--editor/plugins/theme_editor_plugin.cpp2
-rw-r--r--editor/plugins/version_control_editor_plugin.cpp2
-rw-r--r--editor/plugins/visual_shader_editor_plugin.cpp148
-rw-r--r--editor/plugins/visual_shader_editor_plugin.h8
-rw-r--r--editor/property_selector.cpp49
-rw-r--r--editor/quick_open.cpp2
-rw-r--r--editor/scene_tree_dock.cpp62
-rw-r--r--editor/scene_tree_dock.h9
-rw-r--r--editor/settings_config_dialog.cpp12
-rw-r--r--editor/shader_create_dialog.cpp627
-rw-r--r--editor/shader_create_dialog.h115
-rw-r--r--editor/translations/af.po100
-rw-r--r--editor/translations/ar.po107
-rw-r--r--editor/translations/az.po98
-rw-r--r--editor/translations/bg.po106
-rw-r--r--editor/translations/bn.po110
-rw-r--r--editor/translations/br.po98
-rw-r--r--editor/translations/ca.po107
-rw-r--r--editor/translations/cs.po107
-rw-r--r--editor/translations/da.po109
-rw-r--r--editor/translations/de.po1058
-rw-r--r--editor/translations/editor.pot97
-rw-r--r--editor/translations/el.po107
-rw-r--r--editor/translations/eo.po101
-rw-r--r--editor/translations/es.po1175
-rw-r--r--editor/translations/es_AR.po362
-rw-r--r--editor/translations/et.po101
-rw-r--r--editor/translations/eu.po100
-rw-r--r--editor/translations/fa.po108
-rw-r--r--editor/translations/fi.po348
-rw-r--r--editor/translations/fil.po98
-rw-r--r--editor/translations/fr.po1065
-rw-r--r--editor/translations/ga.po98
-rw-r--r--editor/translations/gl.po113
-rw-r--r--editor/translations/he.po105
-rw-r--r--editor/translations/hi.po100
-rw-r--r--editor/translations/hr.po99
-rw-r--r--editor/translations/hu.po103
-rw-r--r--editor/translations/id.po107
-rw-r--r--editor/translations/is.po99
-rw-r--r--editor/translations/it.po121
-rw-r--r--editor/translations/ja.po151
-rw-r--r--editor/translations/ka.po100
-rw-r--r--editor/translations/km.po97
-rw-r--r--editor/translations/ko.po472
-rw-r--r--editor/translations/lt.po99
-rw-r--r--editor/translations/lv.po99
-rw-r--r--editor/translations/mi.po97
-rw-r--r--editor/translations/mk.po97
-rw-r--r--editor/translations/ml.po99
-rw-r--r--editor/translations/mr.po98
-rw-r--r--editor/translations/ms.po100
-rw-r--r--editor/translations/nb.po107
-rw-r--r--editor/translations/nl.po153
-rw-r--r--editor/translations/or.po97
-rw-r--r--editor/translations/pl.po107
-rw-r--r--editor/translations/pr.po101
-rw-r--r--editor/translations/pt.po151
-rw-r--r--editor/translations/pt_BR.po273
-rw-r--r--editor/translations/ro.po106
-rw-r--r--editor/translations/ru.po1050
-rw-r--r--editor/translations/si.po99
-rw-r--r--editor/translations/sk.po102
-rw-r--r--editor/translations/sl.po108
-rw-r--r--editor/translations/sq.po100
-rw-r--r--editor/translations/sr_Cyrl.po110
-rw-r--r--editor/translations/sr_Latn.po98
-rw-r--r--editor/translations/sv.po156
-rw-r--r--editor/translations/ta.po98
-rw-r--r--editor/translations/te.po97
-rw-r--r--editor/translations/th.po107
-rw-r--r--editor/translations/tr.po107
-rw-r--r--editor/translations/tt.po97
-rw-r--r--editor/translations/tzm.po97
-rw-r--r--editor/translations/uk.po1061
-rw-r--r--editor/translations/ur_PK.po101
-rw-r--r--editor/translations/vi.po103
-rw-r--r--editor/translations/zh_CN.po1028
-rw-r--r--editor/translations/zh_HK.po108
-rw-r--r--editor/translations/zh_TW.po107
134 files changed, 11762 insertions, 5306 deletions
diff --git a/editor/SCsub b/editor/SCsub
index a976c4ed12..d149cc6273 100644
--- a/editor/SCsub
+++ b/editor/SCsub
@@ -30,7 +30,10 @@ if env["tools"]:
reg_exporters_inc = '#include "register_exporters.h"\n'
reg_exporters = "void register_exporters() {\n"
for e in env.platform_exporters:
- env.add_source_files(env.editor_sources, "#platform/" + e + "/export/export.cpp")
+ # Glob all .cpp files in export folder
+ files = Glob("#platform/" + e + "/export/" + "*.cpp")
+ env.add_source_files(env.editor_sources, files)
+
reg_exporters += "\tregister_" + e + "_exporter();\n"
reg_exporters_inc += '#include "platform/' + e + '/export/export.h"\n'
reg_exporters += "}\n"
diff --git a/editor/action_map_editor.cpp b/editor/action_map_editor.cpp
index 9126e0512e..7aa63f899b 100644
--- a/editor/action_map_editor.cpp
+++ b/editor/action_map_editor.cpp
@@ -249,10 +249,10 @@ void InputEventConfigurationDialog::_listen_window_input(const Ref<InputEvent> &
// Maintain physical keycode option state
if (physical_key_checkbox->is_pressed()) {
k->set_physical_keycode(k->get_keycode());
- k->set_keycode(0);
+ k->set_keycode(KEY_NONE);
} else {
- k->set_keycode(k->get_physical_keycode());
- k->set_physical_keycode(0);
+ k->set_keycode((Key)k->get_physical_keycode());
+ k->set_physical_keycode(KEY_NONE);
}
}
@@ -435,10 +435,10 @@ void InputEventConfigurationDialog::_physical_keycode_toggled(bool p_checked) {
if (p_checked) {
k->set_physical_keycode(k->get_keycode());
- k->set_keycode(0);
+ k->set_keycode(KEY_NONE);
} else {
- k->set_keycode(k->get_physical_keycode());
- k->set_physical_keycode(0);
+ k->set_keycode((Key)k->get_physical_keycode());
+ k->set_physical_keycode(KEY_NONE);
}
_set_event(k);
@@ -452,20 +452,20 @@ void InputEventConfigurationDialog::_input_list_item_selected() {
return;
}
- int input_type = selected->get_parent()->get_meta("__type");
+ InputEventConfigurationDialog::InputType input_type = (InputEventConfigurationDialog::InputType)(int)selected->get_parent()->get_meta("__type");
switch (input_type) {
case InputEventConfigurationDialog::INPUT_KEY: {
- int kc = selected->get_meta("__keycode");
+ Key keycode = (Key)(int)selected->get_meta("__keycode");
Ref<InputEventKey> k;
k.instantiate();
if (physical_key_checkbox->is_pressed()) {
- k->set_physical_keycode(kc);
- k->set_keycode(0);
+ k->set_physical_keycode(keycode);
+ k->set_keycode(KEY_NONE);
} else {
- k->set_physical_keycode(0);
- k->set_keycode(kc);
+ k->set_physical_keycode(KEY_NONE);
+ k->set_keycode(keycode);
}
// Maintain modifier state from checkboxes
@@ -479,10 +479,10 @@ void InputEventConfigurationDialog::_input_list_item_selected() {
_set_event(k);
} break;
case InputEventConfigurationDialog::INPUT_MOUSE_BUTTON: {
- int idx = selected->get_meta("__index");
+ MouseButton idx = (MouseButton)(int)selected->get_meta("__index");
Ref<InputEventMouseButton> mb;
mb.instantiate();
- mb->set_button_index((MouseButton)idx);
+ mb->set_button_index(idx);
// Maintain modifier state from checkboxes
mb->set_alt_pressed(mod_checkboxes[MOD_ALT]->is_pressed());
mb->set_shift_pressed(mod_checkboxes[MOD_SHIFT]->is_pressed());
@@ -494,22 +494,20 @@ void InputEventConfigurationDialog::_input_list_item_selected() {
_set_event(mb);
} break;
case InputEventConfigurationDialog::INPUT_JOY_BUTTON: {
- int idx = selected->get_meta("__index");
- Ref<InputEventJoypadButton> jb = InputEventJoypadButton::create_reference((JoyButton)idx);
+ JoyButton idx = (JoyButton)(int)selected->get_meta("__index");
+ Ref<InputEventJoypadButton> jb = InputEventJoypadButton::create_reference(idx);
_set_event(jb);
} break;
case InputEventConfigurationDialog::INPUT_JOY_MOTION: {
- int axis = selected->get_meta("__axis");
+ JoyAxis axis = (JoyAxis)(int)selected->get_meta("__axis");
int value = selected->get_meta("__value");
Ref<InputEventJoypadMotion> jm;
jm.instantiate();
- jm->set_axis((JoyAxis)axis);
+ jm->set_axis(axis);
jm->set_axis_value(value);
_set_event(jm);
} break;
- default:
- break;
}
}
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp
index c9d3df9ce2..964c37906f 100644
--- a/editor/animation_track_editor.cpp
+++ b/editor/animation_track_editor.cpp
@@ -3418,6 +3418,7 @@ void AnimationTrackEditor::_query_insert(const InsertData &p_id) {
if (bool(EDITOR_DEF("editors/animation/confirm_insert_track", true))) {
//potential new key, does not exist
if (num_tracks == 1) {
+ // TRANSLATORS: %s will be replaced by a phrase describing the target of track.
insert_confirm_text->set_text(vformat(TTR("Create new track for %s and insert key?"), p_id.query));
} else {
insert_confirm_text->set_text(vformat(TTR("Create %d new tracks and insert keys?"), num_tracks));
@@ -3525,7 +3526,8 @@ void AnimationTrackEditor::insert_transform_key(Node3D *p_node, const String &p_
id.track_idx = track_idx;
id.value = p_xform;
id.type = Animation::TYPE_TRANSFORM3D;
- id.query = "node '" + p_node->get_name() + "'";
+ // TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+ id.query = vformat(TTR("node '%s'"), p_node->get_name());
id.advance = false;
//dialog insert
@@ -3547,7 +3549,8 @@ void AnimationTrackEditor::_insert_animation_key(NodePath p_path, const Variant
id.track_idx = i;
id.value = p_value;
id.type = Animation::TYPE_ANIMATION;
- id.query = "animation";
+ // TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+ id.query = TTR("animation");
id.advance = false;
//dialog insert
_query_insert(id);
@@ -3560,7 +3563,7 @@ void AnimationTrackEditor::_insert_animation_key(NodePath p_path, const Variant
id.track_idx = -1;
id.value = p_value;
id.type = Animation::TYPE_ANIMATION;
- id.query = "animation";
+ id.query = TTR("animation");
id.advance = false;
//dialog insert
_query_insert(id);
@@ -3609,7 +3612,8 @@ void AnimationTrackEditor::insert_node_value_key(Node *p_node, const String &p_p
id.track_idx = i;
id.value = p_value;
id.type = Animation::TYPE_VALUE;
- id.query = "property '" + p_property + "'";
+ // TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+ id.query = vformat(TTR("property '%s'"), p_property);
id.advance = false;
//dialog insert
_query_insert(id);
@@ -3639,7 +3643,7 @@ void AnimationTrackEditor::insert_node_value_key(Node *p_node, const String &p_p
id.track_idx = i;
id.value = value;
id.type = Animation::TYPE_BEZIER;
- id.query = "property '" + p_property + "'";
+ id.query = vformat(TTR("property '%s'"), p_property);
id.advance = false;
//dialog insert
_query_insert(id);
@@ -3655,7 +3659,7 @@ void AnimationTrackEditor::insert_node_value_key(Node *p_node, const String &p_p
id.track_idx = -1;
id.value = p_value;
id.type = Animation::TYPE_VALUE;
- id.query = "property '" + p_property + "'";
+ id.query = vformat(TTR("property '%s'"), p_property);
id.advance = false;
//dialog insert
_query_insert(id);
@@ -3708,7 +3712,7 @@ void AnimationTrackEditor::insert_value_key(const String &p_property, const Vari
id.track_idx = i;
id.value = p_value;
id.type = Animation::TYPE_VALUE;
- id.query = "property '" + p_property + "'";
+ id.query = vformat(TTR("property '%s'"), p_property);
id.advance = p_advance;
//dialog insert
_query_insert(id);
@@ -3733,7 +3737,7 @@ void AnimationTrackEditor::insert_value_key(const String &p_property, const Vari
id.track_idx = i;
id.value = value;
id.type = Animation::TYPE_BEZIER;
- id.query = "property '" + p_property + "'";
+ id.query = vformat(TTR("property '%s'"), p_property);
id.advance = p_advance;
//dialog insert
_query_insert(id);
@@ -3747,7 +3751,7 @@ void AnimationTrackEditor::insert_value_key(const String &p_property, const Vari
id.track_idx = -1;
id.value = p_value;
id.type = Animation::TYPE_VALUE;
- id.query = "property '" + p_property + "'";
+ id.query = vformat(TTR("property '%s'"), p_property);
id.advance = p_advance;
//dialog insert
_query_insert(id);
@@ -5755,6 +5759,8 @@ void AnimationTrackEditor::_pick_track_filter_input(const Ref<InputEvent> &p_ie)
pick_track->get_scene_tree()->get_scene_tree()->call("_gui_input", k);
pick_track->get_filter_line_edit()->accept_event();
} break;
+ default:
+ break;
}
}
}
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index eeb99b3677..a5943c952b 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -44,7 +44,7 @@
void GotoLineDialog::popup_find_line(CodeEdit *p_edit) {
text_editor = p_edit;
- line->set_text(itos(text_editor->cursor_get_line()));
+ line->set_text(itos(text_editor->get_caret_line()));
line->select_all();
popup_centered(Size2(180, 80) * EDSCALE);
line->grab_focus();
@@ -59,7 +59,7 @@ void GotoLineDialog::ok_pressed() {
return;
}
text_editor->unfold_line(get_line() - 1);
- text_editor->cursor_set_line(get_line() - 1);
+ text_editor->set_caret_line(get_line() - 1);
hide();
}
@@ -142,26 +142,23 @@ void FindReplaceBar::_unhandled_input(const Ref<InputEvent> &p_event) {
}
bool FindReplaceBar::_search(uint32_t p_flags, int p_from_line, int p_from_col) {
- int line, col;
String text = get_search_text();
+ Point2i pos = text_editor->search(text, p_flags, p_from_line, p_from_col);
- bool found = text_editor->search(text, p_flags, p_from_line, p_from_col, line, col);
-
- if (found) {
+ if (pos.x != -1) {
if (!preserve_cursor && !is_selection_only()) {
- text_editor->unfold_line(line);
- text_editor->cursor_set_line(line, false);
- text_editor->cursor_set_column(col + text.length(), false);
- text_editor->center_viewport_to_cursor();
- text_editor->select(line, col, line, col + text.length());
+ text_editor->unfold_line(pos.y);
+ text_editor->set_caret_line(pos.y, false);
+ text_editor->set_caret_column(pos.x + text.length(), false);
+ text_editor->center_viewport_to_caret();
+ text_editor->select(pos.y, pos.x, pos.y, pos.x + text.length());
}
text_editor->set_search_text(text);
text_editor->set_search_flags(p_flags);
- text_editor->set_current_search_result(line, col);
- result_line = line;
- result_col = col;
+ result_line = pos.y;
+ result_col = pos.x;
_update_results_count();
} else {
@@ -170,16 +167,15 @@ bool FindReplaceBar::_search(uint32_t p_flags, int p_from_line, int p_from_col)
result_col = -1;
text_editor->set_search_text("");
text_editor->set_search_flags(p_flags);
- text_editor->set_current_search_result(line, col);
}
_update_matches_label();
- return found;
+ return pos.x != -1;
}
void FindReplaceBar::_replace() {
- bool selection_enabled = text_editor->is_selection_active();
+ bool selection_enabled = text_editor->has_selection();
Point2i selection_begin, selection_end;
if (selection_enabled) {
selection_begin = Point2i(text_editor->get_selection_from_line(), text_editor->get_selection_from_column());
@@ -191,8 +187,8 @@ void FindReplaceBar::_replace() {
text_editor->begin_complex_operation();
if (selection_enabled && is_selection_only()) { // To restrict search_current() to selected region
- text_editor->cursor_set_line(selection_begin.width);
- text_editor->cursor_set_column(selection_begin.height);
+ text_editor->set_caret_line(selection_begin.width);
+ text_editor->set_caret_column(selection_begin.height);
}
if (search_current()) {
@@ -203,13 +199,13 @@ void FindReplaceBar::_replace() {
Point2i match_from(result_line, result_col);
Point2i match_to(result_line, result_col + search_text_len);
if (!(match_from < selection_begin || match_to > selection_end)) {
- text_editor->insert_text_at_cursor(replace_text);
+ text_editor->insert_text_at_caret(replace_text);
if (match_to.x == selection_end.x) { // Adjust selection bounds if necessary
selection_end.y += replace_text.length() - search_text_len;
}
}
} else {
- text_editor->insert_text_at_cursor(replace_text);
+ text_editor->insert_text_at_caret(replace_text);
}
}
text_editor->end_complex_operation();
@@ -226,10 +222,10 @@ void FindReplaceBar::_replace() {
void FindReplaceBar::_replace_all() {
text_editor->disconnect("text_changed", callable_mp(this, &FindReplaceBar::_editor_text_changed));
// Line as x so it gets priority in comparison, column as y.
- Point2i orig_cursor(text_editor->cursor_get_line(), text_editor->cursor_get_column());
+ Point2i orig_cursor(text_editor->get_caret_line(), text_editor->get_caret_column());
Point2i prev_match = Point2(-1, -1);
- bool selection_enabled = text_editor->is_selection_active();
+ bool selection_enabled = text_editor->has_selection();
Point2i selection_begin, selection_end;
if (selection_enabled) {
selection_begin = Point2i(text_editor->get_selection_from_line(), text_editor->get_selection_from_column());
@@ -238,8 +234,8 @@ void FindReplaceBar::_replace_all() {
int vsval = text_editor->get_v_scroll();
- text_editor->cursor_set_line(0);
- text_editor->cursor_set_column(0);
+ text_editor->set_caret_line(0);
+ text_editor->set_caret_column(0);
String replace_text = get_replace_text();
int search_text_len = get_search_text().length();
@@ -251,8 +247,8 @@ void FindReplaceBar::_replace_all() {
text_editor->begin_complex_operation();
if (selection_enabled && is_selection_only()) {
- text_editor->cursor_set_line(selection_begin.width);
- text_editor->cursor_set_column(selection_begin.height);
+ text_editor->set_caret_line(selection_begin.width);
+ text_editor->set_caret_column(selection_begin.height);
}
if (search_current()) {
do {
@@ -275,14 +271,14 @@ void FindReplaceBar::_replace_all() {
}
// Replace but adjust selection bounds.
- text_editor->insert_text_at_cursor(replace_text);
+ text_editor->insert_text_at_caret(replace_text);
if (match_to.x == selection_end.x) {
selection_end.y += replace_text.length() - search_text_len;
}
} else {
// Just replace.
- text_editor->insert_text_at_cursor(replace_text);
+ text_editor->insert_text_at_caret(replace_text);
}
rc++;
@@ -294,8 +290,8 @@ void FindReplaceBar::_replace_all() {
replace_all_mode = false;
// Restore editor state (selection, cursor, scroll).
- text_editor->cursor_set_line(orig_cursor.x);
- text_editor->cursor_set_column(orig_cursor.y);
+ text_editor->set_caret_line(orig_cursor.x);
+ text_editor->set_caret_column(orig_cursor.y);
if (selection_enabled && is_selection_only()) {
// Reselect.
@@ -313,10 +309,10 @@ void FindReplaceBar::_replace_all() {
}
void FindReplaceBar::_get_search_from(int &r_line, int &r_col) {
- r_line = text_editor->cursor_get_line();
- r_col = text_editor->cursor_get_column();
+ r_line = text_editor->get_caret_line();
+ r_col = text_editor->get_caret_column();
- if (text_editor->is_selection_active() && is_selection_only()) {
+ if (text_editor->has_selection() && is_selection_only()) {
return;
}
@@ -409,7 +405,7 @@ bool FindReplaceBar::search_prev() {
int line, col;
_get_search_from(line, col);
- if (text_editor->is_selection_active()) {
+ if (text_editor->has_selection()) {
col--; // Skip currently selected word.
}
@@ -487,8 +483,8 @@ void FindReplaceBar::_show_search(bool p_focus_replace, bool p_show_only) {
search_text->call_deferred(SNAME("grab_focus"));
}
- if (text_editor->is_selection_active() && !selection_only->is_pressed()) {
- search_text->set_text(text_editor->get_selection_text());
+ if (text_editor->has_selection() && !selection_only->is_pressed()) {
+ search_text->set_text(text_editor->get_selected_text());
}
if (!get_search_text().is_empty()) {
@@ -521,9 +517,9 @@ void FindReplaceBar::popup_replace() {
hbc_option_replace->show();
}
- selection_only->set_pressed((text_editor->is_selection_active() && text_editor->get_selection_from_line() < text_editor->get_selection_to_line()));
+ selection_only->set_pressed((text_editor->has_selection() && text_editor->get_selection_from_line() < text_editor->get_selection_to_line()));
- _show_search(is_visible() || text_editor->is_selection_active());
+ _show_search(is_visible() || text_editor->has_selection());
}
void FindReplaceBar::_search_options_changed(bool p_pressed) {
@@ -554,7 +550,7 @@ void FindReplaceBar::_search_text_submitted(const String &p_text) {
}
void FindReplaceBar::_replace_text_submitted(const String &p_text) {
- if (selection_only->is_pressed() && text_editor->is_selection_active()) {
+ if (selection_only->is_pressed() && text_editor->has_selection()) {
_replace_all();
_hide_bar();
} else if (Input::get_singleton()->is_key_pressed(KEY_SHIFT)) {
@@ -807,10 +803,10 @@ void CodeTextEditor::_reset_zoom() {
}
void CodeTextEditor::_line_col_changed() {
- String line = text_editor->get_line(text_editor->cursor_get_line());
+ String line = text_editor->get_line(text_editor->get_caret_line());
int positional_column = 0;
- for (int i = 0; i < text_editor->cursor_get_column(); i++) {
+ for (int i = 0; i < text_editor->get_caret_column(); i++) {
if (line[i] == '\t') {
positional_column += text_editor->get_indent_size(); //tab size
} else {
@@ -820,7 +816,7 @@ void CodeTextEditor::_line_col_changed() {
StringBuilder sb;
sb.append("(");
- sb.append(itos(text_editor->cursor_get_line() + 1).lpad(3));
+ sb.append(itos(text_editor->get_caret_line() + 1).lpad(3));
sb.append(",");
sb.append(itos(positional_column + 1).lpad(3));
sb.append(")");
@@ -950,11 +946,11 @@ void CodeTextEditor::update_editor_settings() {
text_editor->set_draw_bookmarks_gutter(EditorSettings::get_singleton()->get("text_editor/appearance/show_bookmark_gutter"));
text_editor->set_line_folding_enabled(EditorSettings::get_singleton()->get("text_editor/appearance/code_folding"));
text_editor->set_draw_fold_gutter(EditorSettings::get_singleton()->get("text_editor/appearance/code_folding"));
- text_editor->set_wrap_enabled(EditorSettings::get_singleton()->get("text_editor/appearance/word_wrap"));
- text_editor->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/cursor/scroll_past_end_of_file"));
- text_editor->cursor_set_block_mode(EditorSettings::get_singleton()->get("text_editor/cursor/block_caret"));
- text_editor->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink"));
- text_editor->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink_speed"));
+ text_editor->set_line_wrapping_mode((TextEdit::LineWrappingMode)EditorSettings::get_singleton()->get("text_editor/appearance/word_wrap").operator int());
+ text_editor->set_scroll_past_end_of_file_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/scroll_past_end_of_file"));
+ text_editor->set_caret_type((TextEdit::CaretType)EditorSettings::get_singleton()->get("text_editor/cursor/type").operator int());
+ text_editor->set_caret_blink_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink"));
+ text_editor->set_caret_blink_speed(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink_speed"));
text_editor->set_auto_brace_completion_enabled(EditorSettings::get_singleton()->get("text_editor/completion/auto_brace_complete"));
if (EditorSettings::get_singleton()->get("text_editor/appearance/show_line_length_guidelines")) {
@@ -1039,8 +1035,8 @@ void CodeTextEditor::convert_indent_to_spaces() {
indent += " ";
}
- int cursor_line = text_editor->cursor_get_line();
- int cursor_column = text_editor->cursor_get_column();
+ int cursor_line = text_editor->get_caret_line();
+ int cursor_column = text_editor->get_caret_column();
bool changed_indentation = false;
for (int i = 0; i < text_editor->get_line_count(); i++) {
@@ -1069,7 +1065,7 @@ void CodeTextEditor::convert_indent_to_spaces() {
}
}
if (changed_indentation) {
- text_editor->cursor_set_column(cursor_column);
+ text_editor->set_caret_column(cursor_column);
text_editor->end_complex_operation();
text_editor->update();
}
@@ -1079,8 +1075,8 @@ void CodeTextEditor::convert_indent_to_tabs() {
int indent_size = EditorSettings::get_singleton()->get("text_editor/indent/size");
indent_size -= 1;
- int cursor_line = text_editor->cursor_get_line();
- int cursor_column = text_editor->cursor_get_column();
+ int cursor_line = text_editor->get_caret_line();
+ int cursor_column = text_editor->get_caret_column();
bool changed_indentation = false;
for (int i = 0; i < text_editor->get_line_count(); i++) {
@@ -1118,14 +1114,14 @@ void CodeTextEditor::convert_indent_to_tabs() {
}
}
if (changed_indentation) {
- text_editor->cursor_set_column(cursor_column);
+ text_editor->set_caret_column(cursor_column);
text_editor->end_complex_operation();
text_editor->update();
}
}
void CodeTextEditor::convert_case(CaseStyle p_case) {
- if (!text_editor->is_selection_active()) {
+ if (!text_editor->has_selection()) {
return;
}
@@ -1171,12 +1167,12 @@ void CodeTextEditor::convert_case(CaseStyle p_case) {
void CodeTextEditor::move_lines_up() {
text_editor->begin_complex_operation();
- if (text_editor->is_selection_active()) {
+ if (text_editor->has_selection()) {
int from_line = text_editor->get_selection_from_line();
int from_col = text_editor->get_selection_from_column();
int to_line = text_editor->get_selection_to_line();
int to_column = text_editor->get_selection_to_column();
- int cursor_line = text_editor->cursor_get_line();
+ int cursor_line = text_editor->get_caret_line();
for (int i = from_line; i <= to_line; i++) {
int line_id = i;
@@ -1190,15 +1186,15 @@ void CodeTextEditor::move_lines_up() {
text_editor->unfold_line(next_id);
text_editor->swap_lines(line_id, next_id);
- text_editor->cursor_set_line(next_id);
+ text_editor->set_caret_line(next_id);
}
int from_line_up = from_line > 0 ? from_line - 1 : from_line;
int to_line_up = to_line > 0 ? to_line - 1 : to_line;
int cursor_line_up = cursor_line > 0 ? cursor_line - 1 : cursor_line;
text_editor->select(from_line_up, from_col, to_line_up, to_column);
- text_editor->cursor_set_line(cursor_line_up);
+ text_editor->set_caret_line(cursor_line_up);
} else {
- int line_id = text_editor->cursor_get_line();
+ int line_id = text_editor->get_caret_line();
int next_id = line_id - 1;
if (line_id == 0 || next_id < 0) {
@@ -1209,7 +1205,7 @@ void CodeTextEditor::move_lines_up() {
text_editor->unfold_line(next_id);
text_editor->swap_lines(line_id, next_id);
- text_editor->cursor_set_line(next_id);
+ text_editor->set_caret_line(next_id);
}
text_editor->end_complex_operation();
text_editor->update();
@@ -1217,12 +1213,12 @@ void CodeTextEditor::move_lines_up() {
void CodeTextEditor::move_lines_down() {
text_editor->begin_complex_operation();
- if (text_editor->is_selection_active()) {
+ if (text_editor->has_selection()) {
int from_line = text_editor->get_selection_from_line();
int from_col = text_editor->get_selection_from_column();
int to_line = text_editor->get_selection_to_line();
int to_column = text_editor->get_selection_to_column();
- int cursor_line = text_editor->cursor_get_line();
+ int cursor_line = text_editor->get_caret_line();
for (int i = to_line; i >= from_line; i--) {
int line_id = i;
@@ -1236,15 +1232,15 @@ void CodeTextEditor::move_lines_down() {
text_editor->unfold_line(next_id);
text_editor->swap_lines(line_id, next_id);
- text_editor->cursor_set_line(next_id);
+ text_editor->set_caret_line(next_id);
}
int from_line_down = from_line < text_editor->get_line_count() ? from_line + 1 : from_line;
int to_line_down = to_line < text_editor->get_line_count() ? to_line + 1 : to_line;
int cursor_line_down = cursor_line < text_editor->get_line_count() ? cursor_line + 1 : cursor_line;
text_editor->select(from_line_down, from_col, to_line_down, to_column);
- text_editor->cursor_set_line(cursor_line_down);
+ text_editor->set_caret_line(cursor_line_down);
} else {
- int line_id = text_editor->cursor_get_line();
+ int line_id = text_editor->get_caret_line();
int next_id = line_id + 1;
if (line_id == text_editor->get_line_count() - 1 || next_id > text_editor->get_line_count()) {
@@ -1255,7 +1251,7 @@ void CodeTextEditor::move_lines_down() {
text_editor->unfold_line(next_id);
text_editor->swap_lines(line_id, next_id);
- text_editor->cursor_set_line(next_id);
+ text_editor->set_caret_line(next_id);
}
text_editor->end_complex_operation();
text_editor->update();
@@ -1266,57 +1262,57 @@ void CodeTextEditor::_delete_line(int p_line) {
// so `begin_complex_operation` is omitted here
text_editor->set_line(p_line, "");
if (p_line == 0 && text_editor->get_line_count() > 1) {
- text_editor->cursor_set_line(1);
- text_editor->cursor_set_column(0);
+ text_editor->set_caret_line(1);
+ text_editor->set_caret_column(0);
}
text_editor->backspace();
text_editor->unfold_line(p_line);
- text_editor->cursor_set_line(p_line);
+ text_editor->set_caret_line(p_line);
}
void CodeTextEditor::delete_lines() {
text_editor->begin_complex_operation();
- if (text_editor->is_selection_active()) {
+ if (text_editor->has_selection()) {
int to_line = text_editor->get_selection_to_line();
int from_line = text_editor->get_selection_from_line();
int count = Math::abs(to_line - from_line) + 1;
- text_editor->cursor_set_line(from_line, false);
+ text_editor->set_caret_line(from_line, false);
for (int i = 0; i < count; i++) {
_delete_line(from_line);
}
text_editor->deselect();
} else {
- _delete_line(text_editor->cursor_get_line());
+ _delete_line(text_editor->get_caret_line());
}
text_editor->end_complex_operation();
}
void CodeTextEditor::duplicate_selection() {
- const int cursor_column = text_editor->cursor_get_column();
- int from_line = text_editor->cursor_get_line();
- int to_line = text_editor->cursor_get_line();
+ const int cursor_column = text_editor->get_caret_column();
+ int from_line = text_editor->get_caret_line();
+ int to_line = text_editor->get_caret_line();
int from_column = 0;
int to_column = 0;
int cursor_new_line = to_line + 1;
- int cursor_new_column = text_editor->cursor_get_column();
+ int cursor_new_column = text_editor->get_caret_column();
String new_text = "\n" + text_editor->get_line(from_line);
bool selection_active = false;
- text_editor->cursor_set_column(text_editor->get_line(from_line).length());
- if (text_editor->is_selection_active()) {
+ text_editor->set_caret_column(text_editor->get_line(from_line).length());
+ if (text_editor->has_selection()) {
from_column = text_editor->get_selection_from_column();
to_column = text_editor->get_selection_to_column();
from_line = text_editor->get_selection_from_line();
to_line = text_editor->get_selection_to_line();
- cursor_new_line = to_line + text_editor->cursor_get_line() - from_line;
+ cursor_new_line = to_line + text_editor->get_caret_line() - from_line;
cursor_new_column = to_column == cursor_column ? 2 * to_column - from_column : to_column;
- new_text = text_editor->get_selection_text();
+ new_text = text_editor->get_selected_text();
selection_active = true;
- text_editor->cursor_set_line(to_line);
- text_editor->cursor_set_column(to_column);
+ text_editor->set_caret_line(to_line);
+ text_editor->set_caret_column(to_column);
}
text_editor->begin_complex_operation();
@@ -1325,9 +1321,9 @@ void CodeTextEditor::duplicate_selection() {
text_editor->unfold_line(i);
}
text_editor->deselect();
- text_editor->insert_text_at_cursor(new_text);
- text_editor->cursor_set_line(cursor_new_line);
- text_editor->cursor_set_column(cursor_new_column);
+ text_editor->insert_text_at_caret(new_text);
+ text_editor->set_caret_line(cursor_new_line);
+ text_editor->set_caret_column(cursor_new_column);
if (selection_active) {
text_editor->select(to_line, to_column, 2 * to_line - from_line, to_line == from_line ? 2 * to_column - from_column : to_column);
}
@@ -1338,7 +1334,7 @@ void CodeTextEditor::duplicate_selection() {
void CodeTextEditor::toggle_inline_comment(const String &delimiter) {
text_editor->begin_complex_operation();
- if (text_editor->is_selection_active()) {
+ if (text_editor->has_selection()) {
int begin = text_editor->get_selection_from_line();
int end = text_editor->get_selection_to_line();
@@ -1348,7 +1344,7 @@ void CodeTextEditor::toggle_inline_comment(const String &delimiter) {
}
int col_to = text_editor->get_selection_to_column();
- int cursor_pos = text_editor->cursor_get_column();
+ int cursor_pos = text_editor->get_caret_column();
// Check if all lines in the selected block are commented.
bool is_commented = true;
@@ -1377,7 +1373,7 @@ void CodeTextEditor::toggle_inline_comment(const String &delimiter) {
int offset = (is_commented ? -1 : 1) * delimiter.length();
int col_from = text_editor->get_selection_from_column() > 0 ? text_editor->get_selection_from_column() + offset : 0;
- if (is_commented && text_editor->cursor_get_column() == text_editor->get_line(text_editor->cursor_get_line()).length() + 1) {
+ if (is_commented && text_editor->get_caret_column() == text_editor->get_line(text_editor->get_caret_line()).length() + 1) {
cursor_pos += 1;
}
@@ -1385,19 +1381,19 @@ void CodeTextEditor::toggle_inline_comment(const String &delimiter) {
col_to += offset;
}
- if (text_editor->cursor_get_column() != 0) {
+ if (text_editor->get_caret_column() != 0) {
cursor_pos += offset;
}
text_editor->select(begin, col_from, text_editor->get_selection_to_line(), col_to);
- text_editor->cursor_set_column(cursor_pos);
+ text_editor->set_caret_column(cursor_pos);
} else {
- int begin = text_editor->cursor_get_line();
+ int begin = text_editor->get_caret_line();
String line_text = text_editor->get_line(begin);
int delimiter_length = delimiter.length();
- int col = text_editor->cursor_get_column();
+ int col = text_editor->get_caret_column();
if (line_text.begins_with(delimiter)) {
line_text = line_text.substr(delimiter_length, line_text.length());
col -= delimiter_length;
@@ -1407,7 +1403,7 @@ void CodeTextEditor::toggle_inline_comment(const String &delimiter) {
}
text_editor->set_line(begin, line_text);
- text_editor->cursor_set_column(col);
+ text_editor->set_caret_column(col);
}
text_editor->end_complex_operation();
text_editor->update();
@@ -1428,7 +1424,7 @@ void CodeTextEditor::goto_line_selection(int p_line, int p_begin, int p_end) {
void CodeTextEditor::goto_line_centered(int p_line) {
goto_line(p_line);
- text_editor->call_deferred(SNAME("center_viewport_to_cursor"));
+ text_editor->call_deferred(SNAME("center_viewport_to_caret"));
}
void CodeTextEditor::set_executing_line(int p_line) {
@@ -1444,11 +1440,11 @@ Variant CodeTextEditor::get_edit_state() {
state["scroll_position"] = text_editor->get_v_scroll();
state["h_scroll_position"] = text_editor->get_h_scroll();
- state["column"] = text_editor->cursor_get_column();
- state["row"] = text_editor->cursor_get_line();
+ state["column"] = text_editor->get_caret_column();
+ state["row"] = text_editor->get_caret_line();
- state["selection"] = get_text_editor()->is_selection_active();
- if (get_text_editor()->is_selection_active()) {
+ state["selection"] = get_text_editor()->has_selection();
+ if (get_text_editor()->has_selection()) {
state["selection_from_line"] = text_editor->get_selection_from_line();
state["selection_from_column"] = text_editor->get_selection_from_column();
state["selection_to_line"] = text_editor->get_selection_to_line();
@@ -1469,8 +1465,8 @@ void CodeTextEditor::set_edit_state(const Variant &p_state) {
Dictionary state = p_state;
/* update the row first as it sets the column to 0 */
- text_editor->cursor_set_line(state["row"]);
- text_editor->cursor_set_column(state["column"]);
+ text_editor->set_caret_line(state["row"]);
+ text_editor->set_caret_column(state["column"]);
text_editor->set_v_scroll(state["scroll_position"]);
text_editor->set_h_scroll(state["h_scroll_position"]);
@@ -1517,47 +1513,19 @@ void CodeTextEditor::set_error_pos(int p_line, int p_column) {
void CodeTextEditor::goto_error() {
if (error->get_text() != "") {
text_editor->unfold_line(error_line);
- text_editor->cursor_set_line(error_line);
- text_editor->cursor_set_column(error_column);
- text_editor->center_viewport_to_cursor();
+ text_editor->set_caret_line(error_line);
+ text_editor->set_caret_column(error_column);
+ text_editor->center_viewport_to_caret();
}
}
void CodeTextEditor::_update_text_editor_theme() {
- text_editor->add_theme_color_override("background_color", EDITOR_GET("text_editor/highlighting/background_color"));
- text_editor->add_theme_color_override("completion_background_color", EDITOR_GET("text_editor/highlighting/completion_background_color"));
- text_editor->add_theme_color_override("completion_selected_color", EDITOR_GET("text_editor/highlighting/completion_selected_color"));
- text_editor->add_theme_color_override("completion_existing_color", EDITOR_GET("text_editor/highlighting/completion_existing_color"));
- text_editor->add_theme_color_override("completion_scroll_color", EDITOR_GET("text_editor/highlighting/completion_scroll_color"));
- text_editor->add_theme_color_override("completion_font_color", EDITOR_GET("text_editor/highlighting/completion_font_color"));
- text_editor->add_theme_color_override("font_color", EDITOR_GET("text_editor/highlighting/text_color"));
- text_editor->add_theme_color_override("line_number_color", EDITOR_GET("text_editor/highlighting/line_number_color"));
- text_editor->add_theme_color_override("caret_color", EDITOR_GET("text_editor/highlighting/caret_color"));
- text_editor->add_theme_color_override("caret_background_color", EDITOR_GET("text_editor/highlighting/caret_background_color"));
- text_editor->add_theme_color_override("font_selected_color", EDITOR_GET("text_editor/highlighting/text_selected_color"));
- text_editor->add_theme_color_override("selection_color", EDITOR_GET("text_editor/highlighting/selection_color"));
- text_editor->add_theme_color_override("brace_mismatch_color", EDITOR_GET("text_editor/highlighting/brace_mismatch_color"));
- text_editor->add_theme_color_override("current_line_color", EDITOR_GET("text_editor/highlighting/current_line_color"));
- text_editor->add_theme_color_override("line_length_guideline_color", EDITOR_GET("text_editor/highlighting/line_length_guideline_color"));
- text_editor->add_theme_color_override("word_highlighted_color", EDITOR_GET("text_editor/highlighting/word_highlighted_color"));
- text_editor->add_theme_color_override("bookmark_color", EDITOR_GET("text_editor/highlighting/bookmark_color"));
- text_editor->add_theme_color_override("breakpoint_color", EDITOR_GET("text_editor/highlighting/breakpoint_color"));
- text_editor->add_theme_color_override("executing_line_color", EDITOR_GET("text_editor/highlighting/executing_line_color"));
- text_editor->add_theme_color_override("code_folding_color", EDITOR_GET("text_editor/highlighting/code_folding_color"));
- text_editor->add_theme_color_override("search_result_color", EDITOR_GET("text_editor/highlighting/search_result_color"));
- text_editor->add_theme_color_override("search_result_border_color", EDITOR_GET("text_editor/highlighting/search_result_border_color"));
- text_editor->add_theme_constant_override("line_spacing", EDITOR_DEF("text_editor/theme/line_spacing", 6));
emit_signal(SNAME("load_theme_settings"));
- _load_theme_settings();
-}
-
-void CodeTextEditor::_update_font() {
- text_editor->add_theme_font_override("font", get_theme_font(SNAME("source"), SNAME("EditorFonts")));
- text_editor->add_theme_font_size_override("font_size", get_theme_font_size(SNAME("source_size"), SNAME("EditorFonts")));
- error->add_theme_font_override("font", get_theme_font(SNAME("status_source"), SNAME("EditorFonts")));
- error->add_theme_font_size_override("font_size", get_theme_font_size(SNAME("status_source_size"), SNAME("EditorFonts")));
- error->add_theme_color_override("font_color", get_theme_color(SNAME("error_color"), SNAME("Editor")));
+ error->begin_bulk_theme_override();
+ error->add_theme_font_override(SNAME("font"), get_theme_font(SNAME("status_source"), SNAME("EditorFonts")));
+ error->add_theme_font_size_override(SNAME("font_size"), get_theme_font_size(SNAME("status_source_size"), SNAME("EditorFonts")));
+ error->add_theme_color_override(SNAME("font_color"), get_theme_color(SNAME("error_color"), SNAME("Editor")));
Ref<Font> status_bar_font = get_theme_font(SNAME("status_source"), SNAME("EditorFonts"));
int status_bar_font_size = get_theme_font_size(SNAME("status_source_size"), SNAME("EditorFonts"));
@@ -1571,6 +1539,7 @@ void CodeTextEditor::_update_font() {
n->add_theme_font_size_override("font_size", status_bar_font_size);
}
}
+ error->end_bulk_theme_override();
}
void CodeTextEditor::_on_settings_change() {
@@ -1586,7 +1555,6 @@ void CodeTextEditor::_apply_settings_change() {
settings_changed = false;
_update_text_editor_theme();
- _update_font();
font_size = EditorSettings::get_singleton()->get("interface/editor/code_font_size");
@@ -1672,7 +1640,6 @@ void CodeTextEditor::_notification(int p_what) {
update_toggle_scripts_button();
}
_update_text_editor_theme();
- _update_font();
} break;
case NOTIFICATION_ENTER_TREE: {
error_button->set_icon(get_theme_icon(SNAME("StatusError"), SNAME("EditorIcons")));
@@ -1712,7 +1679,7 @@ void CodeTextEditor::set_warning_count(int p_warning_count) {
}
void CodeTextEditor::toggle_bookmark() {
- int line = text_editor->cursor_get_line();
+ int line = text_editor->get_caret_line();
text_editor->set_line_as_bookmarked(line, !text_editor->is_line_bookmarked(line));
}
@@ -1722,18 +1689,18 @@ void CodeTextEditor::goto_next_bookmark() {
return;
}
- int line = text_editor->cursor_get_line();
+ int line = text_editor->get_caret_line();
if (line >= (int)bmarks[bmarks.size() - 1]) {
text_editor->unfold_line(bmarks[0]);
- text_editor->cursor_set_line(bmarks[0]);
- text_editor->center_viewport_to_cursor();
+ text_editor->set_caret_line(bmarks[0]);
+ text_editor->center_viewport_to_caret();
} else {
for (int i = 0; i < bmarks.size(); i++) {
int bmark_line = bmarks[i];
if (bmark_line > line) {
text_editor->unfold_line(bmark_line);
- text_editor->cursor_set_line(bmark_line);
- text_editor->center_viewport_to_cursor();
+ text_editor->set_caret_line(bmark_line);
+ text_editor->center_viewport_to_caret();
return;
}
}
@@ -1746,18 +1713,18 @@ void CodeTextEditor::goto_prev_bookmark() {
return;
}
- int line = text_editor->cursor_get_line();
+ int line = text_editor->get_caret_line();
if (line <= (int)bmarks[0]) {
text_editor->unfold_line(bmarks[bmarks.size() - 1]);
- text_editor->cursor_set_line(bmarks[bmarks.size() - 1]);
- text_editor->center_viewport_to_cursor();
+ text_editor->set_caret_line(bmarks[bmarks.size() - 1]);
+ text_editor->center_viewport_to_caret();
} else {
for (int i = bmarks.size(); i >= 0; i--) {
int bmark_line = bmarks[i];
if (bmark_line < line) {
text_editor->unfold_line(bmark_line);
- text_editor->cursor_set_line(bmark_line);
- text_editor->center_viewport_to_cursor();
+ text_editor->set_caret_line(bmark_line);
+ text_editor->center_viewport_to_caret();
return;
}
}
@@ -1913,7 +1880,7 @@ CodeTextEditor::CodeTextEditor() {
line_and_col_txt->set_mouse_filter(MOUSE_FILTER_STOP);
text_editor->connect("gui_input", callable_mp(this, &CodeTextEditor::_text_editor_gui_input));
- text_editor->connect("cursor_changed", callable_mp(this, &CodeTextEditor::_line_col_changed));
+ text_editor->connect("caret_changed", callable_mp(this, &CodeTextEditor::_line_col_changed));
text_editor->connect("text_changed", callable_mp(this, &CodeTextEditor::_text_changed));
text_editor->connect("request_code_completion", callable_mp(this, &CodeTextEditor::_complete_request));
TypedArray<String> cs;
diff --git a/editor/code_editor.h b/editor/code_editor.h
index 4cd4880df0..ee8f4366dd 100644
--- a/editor/code_editor.h
+++ b/editor/code_editor.h
@@ -168,7 +168,6 @@ class CodeTextEditor : public VBoxContainer {
void _apply_settings_change();
void _update_text_editor_theme();
- void _update_font();
void _complete_request();
Ref<Texture2D> _get_completion_icon(const ScriptCodeCompletionOption &p_option);
void _font_resize_timeout();
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index 3389b53317..eeab0fc2f5 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -359,6 +359,8 @@ void CreateDialog::_sbox_input(const Ref<InputEvent> &p_ie) {
search_options->call("_gui_input", k);
search_box->accept_event();
} break;
+ default:
+ break;
}
}
}
diff --git a/editor/editor_command_palette.cpp b/editor/editor_command_palette.cpp
new file mode 100644
index 0000000000..bffd0655a7
--- /dev/null
+++ b/editor/editor_command_palette.cpp
@@ -0,0 +1,302 @@
+/*************************************************************************/
+/* editor_command_palette.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2021 Godot Engine contributors (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/editor_command_palette.h"
+#include "core/os/keyboard.h"
+#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
+#include "scene/gui/control.h"
+#include "scene/gui/tree.h"
+
+EditorCommandPalette *EditorCommandPalette::singleton = nullptr;
+
+float EditorCommandPalette::_score_path(const String &p_search, const String &p_path) {
+ float score = 0.9f + .1f * (p_search.length() / (float)p_path.length());
+
+ // Positive bias for matches close to the beginning of the file name.
+ int pos = p_path.findn(p_search);
+ if (pos != -1) {
+ return score * (1.0f - 0.1f * (float(pos) / p_path.length()));
+ }
+
+ // Positive bias for matches close to the end of the path.
+ pos = p_path.rfindn(p_search);
+ if (pos != -1) {
+ return score * (0.8f - 0.1f * (float(p_path.length() - pos) / p_path.length()));
+ }
+
+ // Remaining results belong to the same class of results.
+ return score * 0.69f;
+}
+
+void EditorCommandPalette::_update_command_search(const String &search_text) {
+ commands.get_key_list(&command_keys);
+ ERR_FAIL_COND(command_keys.is_empty());
+
+ const bool empty_search = search_text.is_empty();
+ Map<String, TreeItem *> sections;
+ TreeItem *first_section = nullptr;
+
+ // Filter possible candidates.
+ Vector<CommandEntry> entries;
+ for (int i = 0; i < command_keys.size(); i++) {
+ CommandEntry r;
+ r.key_name = command_keys[i];
+ r.display_name = commands[r.key_name].name;
+ r.shortcut_text = commands[r.key_name].shortcut;
+ if (!empty_search && search_text.is_subsequence_ofi(r.display_name)) {
+ r.score = _score_path(search_text, r.display_name.to_lower());
+ entries.push_back(r);
+ }
+ }
+
+ command_keys.clear();
+
+ TreeItem *root = search_options->get_root();
+ root->clear_children();
+
+ if (entries.size() > 0) {
+ if (!empty_search) {
+ SortArray<CommandEntry, CommandEntryComparator> sorter;
+ sorter.sort(entries.ptrw(), entries.size());
+ }
+
+ const int entry_limit = MIN(entries.size(), 300);
+ for (int i = 0; i < entry_limit; i++) {
+ String section_name = entries[i].key_name.get_slice("/", 0);
+ TreeItem *section;
+
+ if (sections.has(section_name)) {
+ section = sections[section_name];
+ } else {
+ section = search_options->create_item(root);
+
+ if (!first_section) {
+ first_section = section;
+ }
+
+ String item_name = section_name.capitalize();
+ section->set_text(0, item_name);
+
+ sections[section_name] = section;
+ section->set_custom_bg_color(0, search_options->get_theme_color("prop_subsection", "Editor"));
+ section->set_custom_bg_color(1, search_options->get_theme_color("prop_subsection", "Editor"));
+ }
+
+ TreeItem *ti = search_options->create_item(section);
+ String shortcut_text = entries[i].shortcut_text == "None" ? "" : entries[i].shortcut_text;
+ ti->set_text(0, entries[i].display_name);
+ ti->set_metadata(0, entries[i].key_name);
+ ti->set_text_align(1, TreeItem::TextAlign::ALIGN_RIGHT);
+ ti->set_text(1, shortcut_text);
+ Color c = Color(1, 1, 1, 0.5);
+ ti->set_custom_color(1, c);
+ }
+
+ TreeItem *to_select = first_section->get_first_child();
+ to_select->select(0);
+ to_select->set_as_cursor(0);
+ search_options->scroll_to_item(to_select);
+
+ get_ok_button()->set_disabled(false);
+ } else {
+ TreeItem *ti = search_options->create_item(root);
+ ti->set_text(0, TTR("No Matching Command"));
+ ti->set_metadata(0, "");
+ Color c = Color(0.5, 0.5, 0.5, 0.5);
+ ti->set_custom_color(0, c);
+ search_options->deselect_all();
+
+ get_ok_button()->set_disabled(true);
+ }
+}
+
+void EditorCommandPalette::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("add_command", "command_name", "key_name", "binded_callable", "shortcut_text"), &EditorCommandPalette::_add_command, DEFVAL("None"));
+ ClassDB::bind_method(D_METHOD("remove_command", "key_name"), &EditorCommandPalette::remove_command);
+}
+
+void EditorCommandPalette::_sbox_input(const Ref<InputEvent> &p_ie) {
+ Ref<InputEventKey> k = p_ie;
+ if (k.is_valid()) {
+ switch (k->get_keycode()) {
+ case KEY_UP:
+ case KEY_DOWN:
+ case KEY_PAGEUP:
+ case KEY_PAGEDOWN: {
+ search_options->call("_gui_input", k);
+ } break;
+ default:
+ break;
+ }
+ }
+}
+
+void EditorCommandPalette::_confirmed() {
+ TreeItem *selected_option = search_options->get_selected();
+ String command_key = selected_option != nullptr ? selected_option->get_metadata(0) : "";
+ if (command_key != "") {
+ hide();
+ execute_command(command_key);
+ }
+}
+
+void EditorCommandPalette::open_popup() {
+ popup_centered_clamped(Size2i(600, 440), 0.8f);
+ command_search_box->clear();
+ command_search_box->grab_focus();
+}
+
+void EditorCommandPalette::get_actions_list(List<String> *p_list) const {
+ commands.get_key_list(p_list);
+}
+
+void EditorCommandPalette::remove_command(String p_key_name) {
+ ERR_FAIL_COND_MSG(!commands.has(p_key_name), "The EditorAction '" + String(p_key_name) + "' Doesn't exists. Unable to remove it.");
+
+ commands.erase(p_key_name);
+}
+
+void EditorCommandPalette::add_command(String p_command_name, String p_key_name, Callable p_action, Vector<Variant> arguments, String p_shortcut_text) {
+ ERR_FAIL_COND_MSG(commands.has(p_key_name), "The EditorAction '" + String(p_command_name) + "' already exists. Unable to add it.");
+
+ const Variant **argptrs = (const Variant **)alloca(sizeof(Variant *) * arguments.size());
+ for (int i = 0; i < arguments.size(); i++) {
+ argptrs[i] = &arguments[i];
+ }
+ Command p_command;
+ p_command.name = p_command_name;
+ p_command.callable = p_action.bind(argptrs, arguments.size());
+ p_command.shortcut = p_shortcut_text;
+
+ commands[p_key_name] = p_command;
+}
+
+void EditorCommandPalette::_add_command(String p_command_name, String p_key_name, Callable p_binded_action, String p_shortcut_text) {
+ ERR_FAIL_COND_MSG(commands.has(p_key_name), "The EditorAction '" + String(p_command_name) + "' already exists. Unable to add it.");
+
+ Command p_command;
+ p_command.name = p_command_name;
+ p_command.callable = p_binded_action;
+ p_command.shortcut = p_shortcut_text;
+
+ commands[p_key_name] = p_command;
+}
+
+void EditorCommandPalette::execute_command(String &p_command_key) {
+ ERR_FAIL_COND_MSG(!commands.has(p_command_key), p_command_key + " not found.");
+ commands[p_command_key].callable.call_deferred(nullptr, 0);
+}
+
+void EditorCommandPalette::register_shortcuts_as_command() {
+ const String *p_key = nullptr;
+ p_key = unregistered_shortcuts.next(p_key);
+ while (p_key != nullptr) {
+ String command_name = unregistered_shortcuts[*p_key].first;
+ Ref<Shortcut> p_shortcut = unregistered_shortcuts[*p_key].second;
+ Ref<InputEventShortcut> ev;
+ ev.instantiate();
+ ev->set_shortcut(p_shortcut);
+ String shortcut_text = String(p_shortcut->get_as_text());
+ add_command(command_name, *p_key, callable_mp(EditorNode::get_singleton()->get_viewport(), &Viewport::unhandled_input), varray(ev, false), shortcut_text);
+ p_key = unregistered_shortcuts.next(p_key);
+ }
+ unregistered_shortcuts.clear();
+}
+
+Ref<Shortcut> EditorCommandPalette::add_shortcut_command(const String &p_command, const String &p_key, Ref<Shortcut> p_shortcut) {
+ if (is_inside_tree()) {
+ Ref<InputEventShortcut> ev;
+ ev.instantiate();
+ ev->set_shortcut(p_shortcut);
+ String shortcut_text = String(p_shortcut->get_as_text());
+ add_command(p_command, p_key, callable_mp(EditorNode::get_singleton()->get_viewport(), &Viewport::unhandled_input), varray(ev, false), shortcut_text);
+ } else {
+ const String key_name = String(p_key);
+ const String command_name = String(p_command);
+ Pair p_pair = Pair(command_name, p_shortcut);
+ unregistered_shortcuts[key_name] = p_pair;
+ }
+ return p_shortcut;
+}
+
+void EditorCommandPalette::_theme_changed() {
+ command_search_box->set_right_icon(search_options->get_theme_icon("Search", "EditorIcons"));
+}
+
+EditorCommandPalette *EditorCommandPalette::get_singleton() {
+ if (singleton == nullptr) {
+ singleton = memnew(EditorCommandPalette);
+ }
+ return singleton;
+}
+
+EditorCommandPalette::EditorCommandPalette() {
+ VBoxContainer *vbc = memnew(VBoxContainer);
+ vbc->connect("theme_changed", callable_mp(this, &EditorCommandPalette::_theme_changed));
+ add_child(vbc);
+
+ command_search_box = memnew(LineEdit);
+ command_search_box->set_placeholder("search for a command");
+ command_search_box->set_placeholder_alpha(0.5);
+ command_search_box->connect("gui_input", callable_mp(this, &EditorCommandPalette::_sbox_input));
+ command_search_box->connect("text_changed", callable_mp(this, &EditorCommandPalette::_update_command_search));
+ command_search_box->connect("text_submitted", callable_mp(this, &EditorCommandPalette::_confirmed).unbind(1));
+ command_search_box->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ MarginContainer *margin_container_csb = memnew(MarginContainer);
+ margin_container_csb->add_child(command_search_box);
+ vbc->add_child(margin_container_csb);
+ register_text_enter(command_search_box);
+
+ search_options = memnew(Tree);
+ search_options->connect("item_activated", callable_mp(this, &EditorCommandPalette::_confirmed));
+ search_options->create_item();
+ search_options->set_hide_root(true);
+ search_options->set_hide_folding(true);
+ search_options->add_theme_constant_override("draw_guides", 1);
+ search_options->set_columns(2);
+ search_options->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ search_options->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ search_options->set_column_custom_minimum_width(0, int(8 * EDSCALE));
+
+ vbc->add_child(search_options, true);
+
+ set_hide_on_ok(false);
+}
+
+Ref<Shortcut> ED_SHORTCUT_AND_COMMAND(const String &p_path, const String &p_name, Key p_keycode, String p_command_name) {
+ if (p_command_name.is_empty()) {
+ p_command_name = p_name;
+ }
+
+ Ref<Shortcut> p_shortcut = ED_SHORTCUT(p_path, p_name, p_keycode);
+ EditorCommandPalette::get_singleton()->add_shortcut_command(p_command_name, p_path, p_shortcut);
+ return p_shortcut;
+}
diff --git a/editor/editor_command_palette.h b/editor/editor_command_palette.h
new file mode 100644
index 0000000000..cfd8b964c8
--- /dev/null
+++ b/editor/editor_command_palette.h
@@ -0,0 +1,95 @@
+/*************************************************************************/
+/* editor_command_palette.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2021 Godot Engine contributors (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_COMMAND_PALETTE_H
+#define EDITOR_COMMAND_PALETTE_H
+
+#include "core/os/thread_safe.h"
+#include "scene/gui/dialogs.h"
+#include "scene/gui/shortcut.h"
+#include "scene/gui/tree.h"
+
+class EditorCommandPalette : public ConfirmationDialog {
+ GDCLASS(EditorCommandPalette, ConfirmationDialog);
+
+ static EditorCommandPalette *singleton;
+ LineEdit *command_search_box;
+ Tree *search_options;
+
+ struct Command {
+ Callable callable;
+ String name;
+ String shortcut;
+ };
+
+ struct CommandEntry {
+ String key_name;
+ String display_name;
+ String shortcut_text;
+ float score;
+ };
+
+ struct CommandEntryComparator {
+ _FORCE_INLINE_ bool operator()(const CommandEntry &A, const CommandEntry &B) const {
+ return A.score > B.score;
+ }
+ };
+
+ HashMap<String, Command> commands;
+ HashMap<String, Pair<String, Ref<Shortcut>>> unregistered_shortcuts;
+
+ List<String> command_keys;
+
+ void _update_command_search(const String &search_text);
+ float _score_path(const String &p_search, const String &p_path);
+ void _sbox_input(const Ref<InputEvent> &p_ie);
+ void _confirmed();
+ void _update_command_keys();
+ void _add_command(String p_command_name, String p_key_name, Callable p_binded_action, String p_shortcut_text = "None");
+ void _theme_changed();
+ EditorCommandPalette();
+
+protected:
+ static void _bind_methods();
+
+public:
+ void open_popup();
+ void get_actions_list(List<String> *p_list) const;
+ void add_command(String p_command_name, String p_key_name, Callable p_action, Vector<Variant> arguments, String p_shortcut_text = "None");
+ void execute_command(String &p_command_name);
+ void register_shortcuts_as_command();
+ Ref<Shortcut> add_shortcut_command(const String &p_command, const String &p_key, Ref<Shortcut> p_shortcut);
+ void remove_command(String p_key_name);
+ static EditorCommandPalette *get_singleton();
+};
+
+Ref<Shortcut> ED_SHORTCUT_AND_COMMAND(const String &p_path, const String &p_name, Key p_keycode = KEY_NONE, String p_command = "");
+
+#endif //EDITOR_COMMAND_PALETTE_H
diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp
index 72a0c353e8..84a9237a96 100644
--- a/editor/editor_feature_profile.cpp
+++ b/editor/editor_feature_profile.cpp
@@ -563,7 +563,7 @@ void EditorFeatureProfileManager::_class_list_item_selected() {
int feature_id = md;
String feature_description = EditorFeatureProfile::get_feature_description(EditorFeatureProfile::Feature(feature_id));
- description_bit->set_text(feature_description);
+ description_bit->set_text(TTRGET(feature_description));
return;
} else {
return;
diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp
index 57f0345dad..2b5eee4c1f 100644
--- a/editor/editor_help_search.cpp
+++ b/editor/editor_help_search.cpp
@@ -74,6 +74,8 @@ void EditorHelpSearch::_search_box_gui_input(const Ref<InputEvent> &p_event) {
results_tree->call("_gui_input", key);
search_box->accept_event();
} break;
+ default:
+ break;
}
}
}
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index d7b7e8e52d..9de8b0451a 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -887,7 +887,7 @@ Control *EditorProperty::make_custom_tooltip(const String &p_text) const {
text += "\n" + property_doc;
}
}
- help_bit->set_text(text);
+ help_bit->call_deferred(SNAME("set_text"), text); //hack so it uses proper theme once inside scene
}
return help_bit;
@@ -1102,7 +1102,7 @@ Control *EditorInspectorCategory::make_custom_tooltip(const String &p_text) cons
text += "\n" + property_doc;
}
}
- help_bit->set_text(text); //hack so it uses proper theme once inside scene
+ help_bit->call_deferred(SNAME("set_text"), text); //hack so it uses proper theme once inside scene
}
return help_bit;
@@ -1907,8 +1907,7 @@ void EditorInspector::update_tree() {
}
Vector<String> slices = propname.operator String().split("/");
- if (slices.size() == 2 && slices[0].begins_with("custom_")) {
- // Likely a theme property.
+ if (slices.size() == 2 && slices[0].begins_with("theme_override_")) {
for (int i = 0; i < F->get().theme_properties.size(); i++) {
if (F->get().theme_properties[i].name == slices[1]) {
descr = DTR(F->get().theme_properties[i].description);
diff --git a/editor/editor_layouts_dialog.cpp b/editor/editor_layouts_dialog.cpp
index 0c8660c216..b1f8ba5d20 100644
--- a/editor/editor_layouts_dialog.cpp
+++ b/editor/editor_layouts_dialog.cpp
@@ -58,6 +58,8 @@ void EditorLayoutsDialog::_line_gui_input(const Ref<InputEvent> &p_event) {
hide();
set_input_as_handled();
} break;
+ default:
+ break;
}
}
}
diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp
index 2cb73664f5..296a33d917 100644
--- a/editor/editor_log.cpp
+++ b/editor/editor_log.cpp
@@ -397,7 +397,7 @@ EditorLog::EditorLog() {
show_search_button->set_focus_mode(FOCUS_NONE);
show_search_button->set_toggle_mode(true);
show_search_button->set_pressed(true);
- show_search_button->set_shortcut(ED_SHORTCUT("editor/open_search", TTR("Open the search box."), KEY_MASK_CMD | KEY_F));
+ show_search_button->set_shortcut(ED_SHORTCUT("editor/open_search", TTR("Focus Search/Filter Bar"), KEY_MASK_CMD | KEY_F));
show_search_button->set_shortcut_context(this);
show_search_button->connect("toggled", callable_mp(this, &EditorLog::_set_search_visible));
hb_tools2->add_child(show_search_button);
diff --git a/editor/editor_native_shader_source_visualizer.cpp b/editor/editor_native_shader_source_visualizer.cpp
index ed2692190c..f98ac5af79 100644
--- a/editor/editor_native_shader_source_visualizer.cpp
+++ b/editor/editor_native_shader_source_visualizer.cpp
@@ -51,7 +51,7 @@ void EditorNativeShaderSourceVisualizer::_inspect_shader(RID p_shader) {
versions->add_child(vtab);
for (int j = 0; j < nsc.versions[i].stages.size(); j++) {
TextEdit *vtext = memnew(TextEdit);
- vtext->set_readonly(true);
+ vtext->set_editable(false);
vtext->set_name(nsc.versions[i].stages[j].name);
vtext->set_text(nsc.versions[i].stages[j].code);
vtext->set_v_size_flags(Control::SIZE_EXPAND_FILL);
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 78500ab16c..19a6d027bc 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -75,6 +75,7 @@
#include "editor/dependency_editor.h"
#include "editor/editor_about.h"
#include "editor/editor_audio_buses.h"
+#include "editor/editor_command_palette.h"
#include "editor/editor_export.h"
#include "editor/editor_feature_profile.h"
#include "editor/editor_file_system.h"
@@ -404,7 +405,7 @@ void EditorNode::_unhandled_input(const Ref<InputEvent> &p_event) {
ERR_FAIL_COND(p_event.is_null());
Ref<InputEventKey> k = p_event;
- if (k.is_valid() && k->is_pressed() && !k->is_echo()) {
+ if ((k.is_valid() && k->is_pressed() && !k->is_echo()) || Object::cast_to<InputEventShortcut>(*p_event)) {
EditorPlugin *old_editor = editor_plugin_screen;
if (ED_IS_SHORTCUT("editor/next_tab", p_event)) {
@@ -435,6 +436,9 @@ void EditorNode::_unhandled_input(const Ref<InputEvent> &p_event) {
_editor_select_next();
} else if (ED_IS_SHORTCUT("editor/editor_prev", p_event)) {
_editor_select_prev();
+ } else if (ED_IS_SHORTCUT("editor/command_palette", p_event)) {
+ _open_command_palette();
+ } else {
}
if (old_editor != editor_plugin_screen) {
@@ -565,13 +569,15 @@ void EditorNode::_notification(int p_what) {
Engine::get_singleton()->set_editor_hint(true);
OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec")));
- get_tree()->get_root()->set_as_audio_listener(false);
+ get_tree()->get_root()->set_as_audio_listener_3d(false);
get_tree()->get_root()->set_as_audio_listener_2d(false);
get_tree()->get_root()->set_snap_2d_transforms_to_pixel(false);
get_tree()->get_root()->set_snap_2d_vertices_to_pixel(false);
get_tree()->set_auto_accept_quit(false);
get_tree()->get_root()->connect("files_dropped", callable_mp(this, &EditorNode::_dropped_files));
+ command_palette->register_shortcuts_as_command();
+
/* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */
} break;
@@ -607,8 +613,10 @@ void EditorNode::_notification(int p_what) {
_editor_select(EDITOR_3D);
}
- // Save the project after opening to mark it as last modified.
- ProjectSettings::get_singleton()->save();
+ // Save the project after opening to mark it as last modified, except in headless mode.
+ if (DisplayServer::get_singleton()->window_can_draw()) {
+ ProjectSettings::get_singleton()->save();
+ }
/* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */
} break;
@@ -1063,6 +1071,10 @@ void EditorNode::_editor_select_next() {
_editor_select(editor);
}
+void EditorNode::_open_command_palette() {
+ command_palette->open_popup();
+}
+
void EditorNode::_editor_select_prev() {
int editor = _get_current_main_editor();
@@ -1596,7 +1608,9 @@ static void _reset_animation_players(Node *p_node, List<Ref<AnimatedValuesBackup
AnimationPlayer *player = Object::cast_to<AnimationPlayer>(p_node->get_child(i));
if (player && player->is_reset_on_save_enabled() && player->can_apply_reset()) {
Ref<AnimatedValuesBackup> old_values = player->apply_reset();
- r_anim_backups->push_back(old_values);
+ if (old_values.is_valid()) {
+ r_anim_backups->push_back(old_values);
+ }
}
_reset_animation_players(p_node->get_child(i), r_anim_backups);
}
@@ -2815,6 +2829,9 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
case HELP_SEARCH: {
emit_signal(SNAME("request_help_search"), "");
} break;
+ case HELP_COMMAND_PALETTE: {
+ command_palette->open_popup();
+ } break;
case HELP_DOCS: {
OS::get_singleton()->shell_open("https://docs.godotengine.org/");
} break;
@@ -3802,6 +3819,7 @@ void EditorNode::register_editor_types() {
// FIXME: Is this stuff obsolete, or should it be ported to new APIs?
GDREGISTER_CLASS(EditorScenePostImport);
//ClassDB::register_type<EditorImportExport>();
+ GDREGISTER_CLASS(EditorCommandPalette);
GDREGISTER_CLASS(EditorDebuggerPlugin);
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_EDITOR);
@@ -4944,6 +4962,16 @@ void EditorNode::_scene_tab_input(const Ref<InputEvent> &p_input) {
scene_tabs_context_menu->set_position(mb->get_global_position());
scene_tabs_context_menu->popup();
}
+ if (mb->get_button_index() == MOUSE_BUTTON_WHEEL_UP && mb->is_pressed()) {
+ int previous_tab = editor_data.get_edited_scene() - 1;
+ previous_tab = previous_tab >= 0 ? previous_tab : editor_data.get_edited_scene_count() - 1;
+ _scene_tab_changed(previous_tab);
+ }
+ if (mb->get_button_index() == MOUSE_BUTTON_WHEEL_DOWN && mb->is_pressed()) {
+ int next_tab = editor_data.get_edited_scene() + 1;
+ next_tab %= editor_data.get_edited_scene_count();
+ _scene_tab_changed(next_tab);
+ }
}
}
@@ -6119,9 +6147,9 @@ EditorNode::EditorNode() {
distraction_free = memnew(Button);
distraction_free->set_flat(true);
#ifdef OSX_ENABLED
- distraction_free->set_shortcut(ED_SHORTCUT("editor/distraction_free_mode", TTR("Distraction Free Mode"), KEY_MASK_CMD | KEY_MASK_CTRL | KEY_D));
+ distraction_free->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/distraction_free_mode", TTR("Distraction Free Mode"), KEY_MASK_CMD | KEY_MASK_CTRL | KEY_D));
#else
- distraction_free->set_shortcut(ED_SHORTCUT("editor/distraction_free_mode", TTR("Distraction Free Mode"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F11));
+ distraction_free->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/distraction_free_mode", TTR("Distraction Free Mode"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F11));
#endif
distraction_free->set_tooltip(TTR("Toggle distraction-free mode."));
distraction_free->connect("pressed", callable_mp(this, &EditorNode::_toggle_distraction_free_mode));
@@ -6212,31 +6240,36 @@ EditorNode::EditorNode() {
gui_base->add_child(warning);
warning->connect("custom_action", callable_mp(this, &EditorNode::_copy_warning));
- ED_SHORTCUT("editor/next_tab", TTR("Next tab"), KEY_MASK_CMD + KEY_TAB);
- ED_SHORTCUT("editor/prev_tab", TTR("Previous tab"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_TAB);
- ED_SHORTCUT("editor/filter_files", TTR("Filter Files..."), KEY_MASK_CMD + KEY_MASK_ALT + KEY_P);
+ ED_SHORTCUT("editor/next_tab", TTR("Next Scene Tab"), KEY_MASK_CMD + KEY_TAB);
+ ED_SHORTCUT("editor/prev_tab", TTR("Previous Scene Tab"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_TAB);
+ ED_SHORTCUT("editor/filter_files", TTR("Focus FileSystem Filter"), KEY_MASK_CMD + KEY_MASK_ALT + KEY_P);
+
+ command_palette = EditorCommandPalette::get_singleton();
+ command_palette->set_title(TTR("Command Palette"));
+ gui_base->add_child(command_palette);
+
PopupMenu *p;
file_menu->set_tooltip(TTR("Operations with scene files."));
p = file_menu->get_popup();
- p->add_shortcut(ED_SHORTCUT("editor/new_scene", TTR("New Scene"), KEY_MASK_CMD + KEY_N), FILE_NEW_SCENE);
- p->add_shortcut(ED_SHORTCUT("editor/new_inherited_scene", TTR("New Inherited Scene..."), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_N), FILE_NEW_INHERITED_SCENE);
- p->add_shortcut(ED_SHORTCUT("editor/open_scene", TTR("Open Scene..."), KEY_MASK_CMD + KEY_O), FILE_OPEN_SCENE);
- p->add_shortcut(ED_SHORTCUT("editor/reopen_closed_scene", TTR("Reopen Closed Scene"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_T), FILE_OPEN_PREV);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/new_scene", TTR("New Scene"), KEY_MASK_CMD + KEY_N), FILE_NEW_SCENE);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/new_inherited_scene", TTR("New Inherited Scene..."), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_N), FILE_NEW_INHERITED_SCENE);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/open_scene", TTR("Open Scene..."), KEY_MASK_CMD + KEY_O), FILE_OPEN_SCENE);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/reopen_closed_scene", TTR("Reopen Closed Scene"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_T), FILE_OPEN_PREV);
p->add_submenu_item(TTR("Open Recent"), "RecentScenes", FILE_OPEN_RECENT);
p->add_separator();
- p->add_shortcut(ED_SHORTCUT("editor/save_scene", TTR("Save Scene"), KEY_MASK_CMD + KEY_S), FILE_SAVE_SCENE);
- p->add_shortcut(ED_SHORTCUT("editor/save_scene_as", TTR("Save Scene As..."), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_S), FILE_SAVE_AS_SCENE);
- p->add_shortcut(ED_SHORTCUT("editor/save_all_scenes", TTR("Save All Scenes"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_S), FILE_SAVE_ALL_SCENES);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/save_scene", TTR("Save Scene"), KEY_MASK_CMD + KEY_S), FILE_SAVE_SCENE);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/save_scene_as", TTR("Save Scene As..."), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_S), FILE_SAVE_AS_SCENE);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/save_all_scenes", TTR("Save All Scenes"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_S), FILE_SAVE_ALL_SCENES);
p->add_separator();
- p->add_shortcut(ED_SHORTCUT("editor/quick_open", TTR("Quick Open..."), KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_O), FILE_QUICK_OPEN);
- p->add_shortcut(ED_SHORTCUT("editor/quick_open_scene", TTR("Quick Open Scene..."), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_O), FILE_QUICK_OPEN_SCENE);
- p->add_shortcut(ED_SHORTCUT("editor/quick_open_script", TTR("Quick Open Script..."), KEY_MASK_CMD + KEY_MASK_ALT + KEY_O), FILE_QUICK_OPEN_SCRIPT);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/quick_open", TTR("Quick Open..."), KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_O), FILE_QUICK_OPEN);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/quick_open_scene", TTR("Quick Open Scene..."), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_O), FILE_QUICK_OPEN_SCENE);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/quick_open_script", TTR("Quick Open Script..."), KEY_MASK_CMD + KEY_MASK_ALT + KEY_O), FILE_QUICK_OPEN_SCRIPT);
p->add_separator();
PopupMenu *pm_export = memnew(PopupMenu);
@@ -6251,8 +6284,8 @@ EditorNode::EditorNode() {
p->add_shortcut(ED_GET_SHORTCUT("ui_redo"), EDIT_REDO, true);
p->add_separator();
- p->add_shortcut(ED_SHORTCUT("editor/reload_saved_scene", TTR("Reload Saved Scene")), EDIT_RELOAD_SAVED_SCENE);
- p->add_shortcut(ED_SHORTCUT("editor/close_scene", TTR("Close Scene"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_W), FILE_CLOSE);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/reload_saved_scene", TTR("Reload Saved Scene")), EDIT_RELOAD_SAVED_SCENE);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/close_scene", TTR("Close Scene"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_W), FILE_CLOSE);
recent_scenes = memnew(PopupMenu);
recent_scenes->set_name("RecentScenes");
@@ -6260,7 +6293,7 @@ EditorNode::EditorNode() {
recent_scenes->connect("id_pressed", callable_mp(this, &EditorNode::_open_recent_scene));
p->add_separator();
- p->add_shortcut(ED_SHORTCUT("editor/file_quit", TTR("Quit"), KEY_MASK_CMD + KEY_Q), FILE_QUIT, true);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/file_quit", TTR("Quit"), KEY_MASK_CMD + KEY_Q), FILE_QUIT, true);
project_menu = memnew(MenuButton);
project_menu->set_flat(false);
@@ -6272,7 +6305,7 @@ EditorNode::EditorNode() {
p = project_menu->get_popup();
- p->add_shortcut(ED_SHORTCUT("editor/project_settings", TTR("Project Settings...")), RUN_SETTINGS);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/project_settings", TTR("Project Settings..."), KEY_NONE, TTR("Project Settings")), RUN_SETTINGS);
p->connect("id_pressed", callable_mp(this, &EditorNode::_menu_option));
vcs_actions_menu = VersionControlEditorPlugin::get_singleton()->get_version_control_actions_panel();
@@ -6285,7 +6318,7 @@ EditorNode::EditorNode() {
vcs_actions_menu->add_item(TTR("Shut Down Version Control"), RUN_VCS_SHUT_DOWN);
p->add_separator();
- p->add_shortcut(ED_SHORTCUT("editor/export", TTR("Export...")), FILE_EXPORT_PROJECT);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/export", TTR("Export..."), KEY_NONE, TTR("Export")), FILE_EXPORT_PROJECT);
p->add_item(TTR("Install Android Build Template..."), FILE_INSTALL_ANDROID_SOURCE);
p->add_item(TTR("Open Project Data Folder"), RUN_PROJECT_DATA_FOLDER);
@@ -6303,9 +6336,9 @@ EditorNode::EditorNode() {
p->add_separator();
p->add_shortcut(ED_SHORTCUT("editor/reload_current_project", TTR("Reload Current Project")), RUN_RELOAD_CURRENT_PROJECT);
#ifdef OSX_ENABLED
- p->add_shortcut(ED_SHORTCUT("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_Q), RUN_PROJECT_MANAGER, true);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_Q), RUN_PROJECT_MANAGER, true);
#else
- p->add_shortcut(ED_SHORTCUT("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_Q), RUN_PROJECT_MANAGER, true);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_Q), RUN_PROJECT_MANAGER, true);
#endif
menu_hb->add_spacer();
@@ -6332,9 +6365,9 @@ EditorNode::EditorNode() {
p = settings_menu->get_popup();
#ifdef OSX_ENABLED
- p->add_shortcut(ED_SHORTCUT("editor/editor_settings", TTR("Editor Settings..."), KEY_MASK_CMD + KEY_COMMA), SETTINGS_PREFERENCES);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/editor_settings", TTR("Editor Settings..."), KEY_MASK_CMD + KEY_COMMA), SETTINGS_PREFERENCES);
#else
- p->add_shortcut(ED_SHORTCUT("editor/editor_settings", TTR("Editor Settings...")), SETTINGS_PREFERENCES);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/editor_settings", TTR("Editor Settings...")), SETTINGS_PREFERENCES);
#endif
p->add_separator();
@@ -6345,15 +6378,15 @@ EditorNode::EditorNode() {
p->add_submenu_item(TTR("Editor Layout"), "Layouts");
p->add_separator();
#ifdef OSX_ENABLED
- p->add_shortcut(ED_SHORTCUT("editor/take_screenshot", TTR("Take Screenshot"), KEY_MASK_CMD | KEY_F12), EDITOR_SCREENSHOT);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/take_screenshot", TTR("Take Screenshot"), KEY_MASK_CMD | KEY_F12), EDITOR_SCREENSHOT);
#else
- p->add_shortcut(ED_SHORTCUT("editor/take_screenshot", TTR("Take Screenshot"), KEY_MASK_CTRL | KEY_F12), EDITOR_SCREENSHOT);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/take_screenshot", TTR("Take Screenshot"), KEY_MASK_CTRL | KEY_F12), EDITOR_SCREENSHOT);
#endif
p->set_item_tooltip(p->get_item_count() - 1, TTR("Screenshots are stored in the Editor Data/Settings Folder."));
#ifdef OSX_ENABLED
- p->add_shortcut(ED_SHORTCUT("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KEY_MASK_CMD | KEY_MASK_CTRL | KEY_F), SETTINGS_TOGGLE_FULLSCREEN);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KEY_MASK_CMD | KEY_MASK_CTRL | KEY_F), SETTINGS_TOGGLE_FULLSCREEN);
#else
- p->add_shortcut(ED_SHORTCUT("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KEY_MASK_SHIFT | KEY_F11), SETTINGS_TOGGLE_FULLSCREEN);
+ p->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KEY_MASK_SHIFT | KEY_F11), SETTINGS_TOGGLE_FULLSCREEN);
#endif
#if defined(WINDOWS_ENABLED) && defined(WINDOWS_SUBSYSTEM_CONSOLE)
// The console can only be toggled if the application was built for the console subsystem,
@@ -6386,20 +6419,20 @@ EditorNode::EditorNode() {
p = help_menu->get_popup();
p->connect("id_pressed", callable_mp(this, &EditorNode::_menu_option));
#ifdef OSX_ENABLED
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("HelpSearch"), SNAME("EditorIcons")), ED_SHORTCUT("editor/editor_help", TTR("Search Help"), KEY_MASK_ALT | KEY_SPACE), HELP_SEARCH);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("HelpSearch"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/editor_help", TTR("Search Help"), KEY_MASK_ALT | KEY_SPACE), HELP_SEARCH);
#else
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("HelpSearch"), SNAME("EditorIcons")), ED_SHORTCUT("editor/editor_help", TTR("Search Help"), KEY_F1), HELP_SEARCH);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("HelpSearch"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/editor_help", TTR("Search Help"), KEY_F1), HELP_SEARCH);
#endif
p->add_separator();
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT("editor/online_docs", TTR("Online Documentation")), HELP_DOCS);
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT("editor/q&a", TTR("Questions & Answers")), HELP_QA);
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT("editor/report_a_bug", TTR("Report a Bug")), HELP_REPORT_A_BUG);
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT("editor/suggest_a_feature", TTR("Suggest a Feature")), HELP_SUGGEST_A_FEATURE);
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT("editor/send_docs_feedback", TTR("Send Docs Feedback")), HELP_SEND_DOCS_FEEDBACK);
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT("editor/community", TTR("Community")), HELP_COMMUNITY);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/online_docs", TTR("Online Documentation")), HELP_DOCS);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/q&a", TTR("Questions & Answers")), HELP_QA);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/report_a_bug", TTR("Report a Bug")), HELP_REPORT_A_BUG);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/suggest_a_feature", TTR("Suggest a Feature")), HELP_SUGGEST_A_FEATURE);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/send_docs_feedback", TTR("Send Docs Feedback")), HELP_SEND_DOCS_FEEDBACK);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/community", TTR("Community")), HELP_COMMUNITY);
p->add_separator();
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Godot"), SNAME("EditorIcons")), ED_SHORTCUT("editor/about", TTR("About Godot")), HELP_ABOUT);
- p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Heart"), SNAME("EditorIcons")), ED_SHORTCUT("editor/support_development", TTR("Support Godot Development")), HELP_SUPPORT_GODOT_DEVELOPMENT);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Godot"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/about", TTR("About Godot")), HELP_ABOUT);
+ p->add_icon_shortcut(gui_base->get_theme_icon(SNAME("Heart"), SNAME("EditorIcons")), ED_SHORTCUT_AND_COMMAND("editor/support_development", TTR("Support Godot Development")), HELP_SUPPORT_GODOT_DEVELOPMENT);
HBoxContainer *play_hb = memnew(HBoxContainer);
menu_hb->add_child(play_hb);
@@ -6413,9 +6446,9 @@ EditorNode::EditorNode() {
play_button->connect("pressed", callable_mp(this, &EditorNode::_menu_option), make_binds(RUN_PLAY));
play_button->set_tooltip(TTR("Play the project."));
#ifdef OSX_ENABLED
- play_button->set_shortcut(ED_SHORTCUT("editor/play", TTR("Play"), KEY_MASK_CMD | KEY_B));
+ play_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play", TTR("Play"), KEY_MASK_CMD | KEY_B));
#else
- play_button->set_shortcut(ED_SHORTCUT("editor/play", TTR("Play"), KEY_F5));
+ play_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play", TTR("Play"), KEY_F5));
#endif
pause_button = memnew(Button);
@@ -6459,9 +6492,9 @@ EditorNode::EditorNode() {
play_scene_button->connect("pressed", callable_mp(this, &EditorNode::_menu_option), make_binds(RUN_PLAY_SCENE));
play_scene_button->set_tooltip(TTR("Play the edited scene."));
#ifdef OSX_ENABLED
- play_scene_button->set_shortcut(ED_SHORTCUT("editor/play_scene", TTR("Play Scene"), KEY_MASK_CMD | KEY_R));
+ play_scene_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play_scene", TTR("Play Scene"), KEY_MASK_CMD | KEY_R));
#else
- play_scene_button->set_shortcut(ED_SHORTCUT("editor/play_scene", TTR("Play Scene"), KEY_F6));
+ play_scene_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play_scene", TTR("Play Scene"), KEY_F6));
#endif
play_custom_scene_button = memnew(Button);
@@ -6473,9 +6506,9 @@ EditorNode::EditorNode() {
play_custom_scene_button->connect("pressed", callable_mp(this, &EditorNode::_menu_option), make_binds(RUN_PLAY_CUSTOM_SCENE));
play_custom_scene_button->set_tooltip(TTR("Play custom scene"));
#ifdef OSX_ENABLED
- play_custom_scene_button->set_shortcut(ED_SHORTCUT("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_R));
+ play_custom_scene_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_R));
#else
- play_custom_scene_button->set_shortcut(ED_SHORTCUT("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F5));
+ play_custom_scene_button->set_shortcut(ED_SHORTCUT_AND_COMMAND("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F5));
#endif
HBoxContainer *right_menu_hb = memnew(HBoxContainer);
@@ -7010,19 +7043,21 @@ EditorNode::EditorNode() {
ResourceLoader::set_load_callback(_resource_loaded);
#ifdef OSX_ENABLED
- ED_SHORTCUT("editor/editor_2d", TTR("Open 2D Editor"), KEY_MASK_ALT | KEY_1);
- ED_SHORTCUT("editor/editor_3d", TTR("Open 3D Editor"), KEY_MASK_ALT | KEY_2);
- ED_SHORTCUT("editor/editor_script", TTR("Open Script Editor"), KEY_MASK_ALT | KEY_3);
- ED_SHORTCUT("editor/editor_assetlib", TTR("Open Asset Library"), KEY_MASK_ALT | KEY_4);
+ ED_SHORTCUT_AND_COMMAND("editor/editor_2d", TTR("Open 2D Editor"), KEY_MASK_ALT | KEY_1);
+ ED_SHORTCUT_AND_COMMAND("editor/editor_3d", TTR("Open 3D Editor"), KEY_MASK_ALT | KEY_2);
+ ED_SHORTCUT_AND_COMMAND("editor/editor_script", TTR("Open Script Editor"), KEY_MASK_ALT | KEY_3);
+ ED_SHORTCUT_AND_COMMAND("editor/editor_assetlib", TTR("Open Asset Library"), KEY_MASK_ALT | KEY_4);
+ ED_SHORTCUT("editor/command_palette", TTR("Open Command Palette"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_P);
#else
// Use the Ctrl modifier so F2 can be used to rename nodes in the scene tree dock.
- ED_SHORTCUT("editor/editor_2d", TTR("Open 2D Editor"), KEY_MASK_CTRL | KEY_F1);
- ED_SHORTCUT("editor/editor_3d", TTR("Open 3D Editor"), KEY_MASK_CTRL | KEY_F2);
- ED_SHORTCUT("editor/editor_script", TTR("Open Script Editor"), KEY_MASK_CTRL | KEY_F3);
- ED_SHORTCUT("editor/editor_assetlib", TTR("Open Asset Library"), KEY_MASK_CTRL | KEY_F4);
+ ED_SHORTCUT_AND_COMMAND("editor/editor_2d", TTR("Open 2D Editor"), KEY_MASK_CTRL | KEY_F1);
+ ED_SHORTCUT_AND_COMMAND("editor/editor_3d", TTR("Open 3D Editor"), KEY_MASK_CTRL | KEY_F2);
+ ED_SHORTCUT_AND_COMMAND("editor/editor_script", TTR("Open Script Editor"), KEY_MASK_CTRL | KEY_F3);
+ ED_SHORTCUT_AND_COMMAND("editor/editor_assetlib", TTR("Open Asset Library"), KEY_MASK_CTRL | KEY_F4);
+ ED_SHORTCUT("editor/command_palette", TTR("Open Command Palette"), KEY_MASK_CTRL | KEY_MASK_SHIFT | KEY_P);
#endif
- ED_SHORTCUT("editor/editor_next", TTR("Open the next Editor"));
- ED_SHORTCUT("editor/editor_prev", TTR("Open the previous Editor"));
+ ED_SHORTCUT_AND_COMMAND("editor/editor_next", TTR("Next Editor Tab"));
+ ED_SHORTCUT_AND_COMMAND("editor/editor_prev", TTR("Next Editor Tab"));
screenshot_timer = memnew(Timer);
screenshot_timer->set_one_shot(true);
diff --git a/editor/editor_node.h b/editor/editor_node.h
index 6b91856a59..fed4d23704 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -32,6 +32,7 @@
#define EDITOR_NODE_H
#include "core/templates/safe_refcount.h"
+#include "editor/editor_command_palette.h"
#include "editor/editor_data.h"
#include "editor/editor_export.h"
#include "editor/editor_folding.h"
@@ -55,6 +56,7 @@ class Control;
class DependencyEditor;
class DependencyErrorDialog;
class EditorAbout;
+class EditorCommandPalette;
class EditorExport;
class EditorFeatureProfileManager;
class EditorFileServer;
@@ -192,6 +194,7 @@ private:
EDITOR_OPEN_SCREENSHOT,
HELP_SEARCH,
+ HELP_COMMAND_PALETTE,
HELP_DOCS,
HELP_QA,
HELP_REPORT_A_BUG,
@@ -342,6 +345,7 @@ private:
CenterContainer *tabs_center;
EditorQuickOpen *quick_open;
EditorQuickOpen *quick_run;
+ EditorCommandPalette *command_palette;
HBoxContainer *main_editor_button_vb;
Vector<Button *> main_editor_buttons;
@@ -505,6 +509,7 @@ private:
void _quick_opened();
void _quick_run();
+ void _open_command_palette();
void _run(bool p_current = false, const String &p_custom = "");
void _run_native(const Ref<EditorExportPreset> &p_preset);
@@ -703,6 +708,7 @@ public:
EditorInspector *get_inspector() { return inspector_dock->get_inspector(); }
Container *get_inspector_dock_addon_area() { return inspector_dock->get_addon_area(); }
ScriptCreateDialog *get_script_create_dialog() { return scene_tree_dock->get_script_create_dialog(); }
+ EditorCommandPalette *get_editor_command_palette() { return command_palette; }
ProjectSettingsEditor *get_project_settings() { return project_settings; }
diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp
index 07e9357e67..b71a3944fc 100644
--- a/editor/editor_plugin.cpp
+++ b/editor/editor_plugin.cpp
@@ -310,6 +310,10 @@ bool EditorInterface::is_distraction_free_mode_enabled() const {
return EditorNode::get_singleton()->is_distraction_free_mode_enabled();
}
+EditorCommandPalette *EditorInterface::get_command_palette() const {
+ return EditorNode::get_singleton()->get_editor_command_palette();
+}
+
EditorInterface *EditorInterface::singleton = nullptr;
void EditorInterface::_bind_methods() {
@@ -340,6 +344,7 @@ void EditorInterface::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_current_path"), &EditorInterface::get_current_path);
ClassDB::bind_method(D_METHOD("get_file_system_dock"), &EditorInterface::get_file_system_dock);
ClassDB::bind_method(D_METHOD("get_editor_paths"), &EditorInterface::get_editor_paths);
+ ClassDB::bind_method(D_METHOD("get_command_palette"), &EditorInterface::get_command_palette);
ClassDB::bind_method(D_METHOD("set_plugin_enabled", "plugin", "enabled"), &EditorInterface::set_plugin_enabled);
ClassDB::bind_method(D_METHOD("is_plugin_enabled", "plugin"), &EditorInterface::is_plugin_enabled);
diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h
index 2e1dd0a0c1..d665278144 100644
--- a/editor/editor_plugin.h
+++ b/editor/editor_plugin.h
@@ -45,6 +45,7 @@
class EditorNode;
class Node3D;
class Camera3D;
+class EditorCommandPalette;
class EditorSelection;
class EditorExport;
class EditorSettings;
@@ -87,6 +88,8 @@ public:
Array get_open_scenes() const;
ScriptEditor *get_script_editor();
+ EditorCommandPalette *get_command_palette() const;
+
void select_file(const String &p_file);
String get_selected_path() const;
String get_current_path() const;
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index fa03d281f2..99619cfc40 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -121,7 +121,7 @@ void EditorPropertyMultilineText::_open_big_text() {
if (!big_text_dialog) {
big_text = memnew(TextEdit);
big_text->connect("text_changed", callable_mp(this, &EditorPropertyMultilineText::_big_text_changed));
- big_text->set_wrap_enabled(true);
+ big_text->set_line_wrapping_mode(TextEdit::LineWrappingMode::LINE_WRAPPING_BOUNDARY);
big_text_dialog = memnew(AcceptDialog);
big_text_dialog->add_child(big_text);
big_text_dialog->set_title(TTR("Edit Text:"));
@@ -166,7 +166,7 @@ EditorPropertyMultilineText::EditorPropertyMultilineText() {
set_bottom_editor(hb);
text = memnew(TextEdit);
text->connect("text_changed", callable_mp(this, &EditorPropertyMultilineText::_text_changed));
- text->set_wrap_enabled(true);
+ text->set_line_wrapping_mode(TextEdit::LineWrappingMode::LINE_WRAPPING_BOUNDARY);
add_focusable(text);
hb->add_child(text);
text->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -837,7 +837,7 @@ public:
Vector2 offset;
offset.y = rect2.size.y * 0.75;
- draw_string(font, rect2.position + offset, itos(layer_index), HALIGN_CENTER, rect2.size.x, -1, on ? text_color_on : text_color);
+ draw_string(font, rect2.position + offset, itos(layer_index + 1), HALIGN_CENTER, rect2.size.x, -1, on ? text_color_on : text_color);
ofs.x += bsize + 1;
@@ -993,12 +993,12 @@ void EditorPropertyLayers::setup(LayerType p_layer_type) {
for (int i = 0; i < layer_count; i++) {
String name;
- if (ProjectSettings::get_singleton()->has_setting(basename + vformat("/layer_%d", i))) {
- name = ProjectSettings::get_singleton()->get(basename + vformat("/layer_%d", i));
+ if (ProjectSettings::get_singleton()->has_setting(basename + vformat("/layer_%d", i + 1))) {
+ name = ProjectSettings::get_singleton()->get(basename + vformat("/layer_%d", i + 1));
}
if (name == "") {
- name = vformat(TTR("Layer %d"), i);
+ name = vformat(TTR("Layer %d"), i + 1);
}
names.push_back(name);
@@ -2854,6 +2854,10 @@ void EditorPropertyResource::setup(Object *p_object, const String &p_path, const
EditorScriptPicker *script_picker = memnew(EditorScriptPicker);
script_picker->set_script_owner(Object::cast_to<Node>(p_object));
resource_picker = script_picker;
+ } else if (p_path == "shader" && p_base_type == "Shader" && Object::cast_to<ShaderMaterial>(p_object)) {
+ EditorShaderPicker *shader_picker = memnew(EditorShaderPicker);
+ shader_picker->set_edited_material(Object::cast_to<ShaderMaterial>(p_object));
+ resource_picker = shader_picker;
} else {
resource_picker = memnew(EditorResourcePicker);
}
diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp
index f3965fe7de..a4ab749db4 100644
--- a/editor/editor_resource_picker.cpp
+++ b/editor/editor_resource_picker.cpp
@@ -847,6 +847,8 @@ EditorResourcePicker::EditorResourcePicker() {
edit_button->connect("gui_input", callable_mp(this, &EditorResourcePicker::_button_input));
}
+// EditorScriptPicker
+
void EditorScriptPicker::set_create_options(Object *p_menu_node) {
PopupMenu *menu_node = Object::cast_to<PopupMenu>(p_menu_node);
if (!menu_node) {
@@ -895,3 +897,42 @@ void EditorScriptPicker::_bind_methods() {
EditorScriptPicker::EditorScriptPicker() {
}
+
+// EditorShaderPicker
+
+void EditorShaderPicker::set_create_options(Object *p_menu_node) {
+ PopupMenu *menu_node = Object::cast_to<PopupMenu>(p_menu_node);
+ if (!menu_node) {
+ return;
+ }
+
+ menu_node->add_icon_item(get_theme_icon("Shader", "EditorIcons"), TTR("New Shader"), OBJ_MENU_NEW_SHADER);
+ menu_node->add_separator();
+}
+
+bool EditorShaderPicker::handle_menu_selected(int p_which) {
+ Ref<ShaderMaterial> material = Ref<ShaderMaterial>(get_edited_material());
+
+ switch (p_which) {
+ case OBJ_MENU_NEW_SHADER: {
+ if (material.is_valid()) {
+ EditorNode::get_singleton()->get_scene_tree_dock()->open_shader_dialog(material);
+ return true;
+ }
+ } break;
+ default:
+ break;
+ }
+ return false;
+}
+
+void EditorShaderPicker::set_edited_material(ShaderMaterial *p_material) {
+ edited_material = p_material;
+}
+
+ShaderMaterial *EditorShaderPicker::get_edited_material() const {
+ return edited_material;
+}
+
+EditorShaderPicker::EditorShaderPicker() {
+}
diff --git a/editor/editor_resource_picker.h b/editor/editor_resource_picker.h
index a4c3006c02..d77c31f831 100644
--- a/editor/editor_resource_picker.h
+++ b/editor/editor_resource_picker.h
@@ -144,4 +144,23 @@ public:
EditorScriptPicker();
};
+class EditorShaderPicker : public EditorResourcePicker {
+ GDCLASS(EditorShaderPicker, EditorResourcePicker);
+
+ enum ExtraMenuOption {
+ OBJ_MENU_NEW_SHADER = 10,
+ };
+
+ ShaderMaterial *edited_material = nullptr;
+
+public:
+ virtual void set_create_options(Object *p_menu_node) override;
+ virtual bool handle_menu_selected(int p_which) override;
+
+ void set_edited_material(ShaderMaterial *p_material);
+ ShaderMaterial *get_edited_material() const;
+
+ EditorShaderPicker();
+};
+
#endif // EDITOR_RESOURCE_PICKER_H
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index 29ac836834..009a83994c 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -374,6 +374,11 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("interface/editor/display_scale", 0);
// Display what the Auto display scale setting effectively corresponds to.
float scale = get_auto_display_scale();
+
+ _initial_set("interface/editor/enable_debugging_pseudolocalization", false);
+ set_restart_if_changed("interface/editor/enable_debugging_pseudolocalization", true);
+ // Use pseudolocalization in editor.
+
hints["interface/editor/display_scale"] = PropertyInfo(Variant::INT, "interface/editor/display_scale", PROPERTY_HINT_ENUM, vformat("Auto (%d%%),75%%,100%%,125%%,150%%,175%%,200%%,Custom", Math::round(scale * 100)), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED);
_initial_set("interface/editor/custom_display_scale", 1.0f);
hints["interface/editor/custom_display_scale"] = PropertyInfo(Variant::FLOAT, "interface/editor/custom_display_scale", PROPERTY_HINT_RANGE, "0.5,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED);
@@ -520,7 +525,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("text_editor/appearance/show_bookmark_gutter", true);
_initial_set("text_editor/appearance/show_info_gutter", true);
_initial_set("text_editor/appearance/code_folding", true);
- _initial_set("text_editor/appearance/word_wrap", false);
+ _initial_set("text_editor/appearance/word_wrap", 0);
+ hints["text_editor/appearance/word_wrap"] = PropertyInfo(Variant::INT, "text_editor/appearance/word_wrap", PROPERTY_HINT_ENUM, "None,Boundary");
+
_initial_set("text_editor/appearance/show_line_length_guidelines", true);
_initial_set("text_editor/appearance/line_length_guideline_soft_column", 80);
hints["text_editor/appearance/line_length_guideline_soft_column"] = PropertyInfo(Variant::INT, "text_editor/appearance/line_length_guideline_soft_column", PROPERTY_HINT_RANGE, "20, 160, 1");
@@ -541,7 +548,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
// Cursor
_initial_set("text_editor/cursor/scroll_past_end_of_file", false);
- _initial_set("text_editor/cursor/block_caret", false);
+ _initial_set("text_editor/cursor/type", 0);
+ hints["text_editor/cursor/type"] = PropertyInfo(Variant::INT, "text_editor/cursor/type", PROPERTY_HINT_ENUM, "Line,Block");
_initial_set("text_editor/cursor/caret_blink", true);
_initial_set("text_editor/cursor/caret_blink_speed", 0.5);
hints["text_editor/cursor/caret_blink_speed"] = PropertyInfo(Variant::FLOAT, "text_editor/cursor/caret_blink_speed", PROPERTY_HINT_RANGE, "0.1, 10, 0.01");
@@ -953,11 +961,11 @@ fail:
}
void EditorSettings::setup_language() {
+ TranslationServer::get_singleton()->set_editor_pseudolocalization(get("interface/editor/enable_debugging_pseudolocalization"));
String lang = get("interface/editor/editor_language");
if (lang == "en") {
return; // Default, nothing to do.
}
-
// Load editor translation for configured/detected locale.
EditorTranslationList *etl = _editor_translations;
while (etl->data) {
@@ -1514,7 +1522,7 @@ Ref<Shortcut> ED_GET_SHORTCUT(const String &p_path) {
return sc;
}
-Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, uint32_t p_keycode) {
+Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, Key p_keycode) {
#ifdef OSX_ENABLED
// Use Cmd+Backspace as a general replacement for Delete shortcuts on macOS
if (p_keycode == KEY_DELETE) {
diff --git a/editor/editor_settings.h b/editor/editor_settings.h
index 3a28c18b27..6d28b26623 100644
--- a/editor/editor_settings.h
+++ b/editor/editor_settings.h
@@ -200,7 +200,7 @@ Variant _EDITOR_DEF(const String &p_setting, const Variant &p_default, bool p_re
Variant _EDITOR_GET(const String &p_setting);
#define ED_IS_SHORTCUT(p_name, p_ev) (EditorSettings::get_singleton()->is_shortcut(p_name, p_ev))
-Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, uint32_t p_keycode = 0);
+Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, Key p_keycode = KEY_NONE);
Ref<Shortcut> ED_GET_SHORTCUT(const String &p_path);
#endif // EDITOR_SETTINGS_H
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index 0d714065e3..e93c8a1a05 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -1048,20 +1048,20 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("font_readonly_color", "LineEdit", font_readonly_color);
theme->set_color("caret_color", "TextEdit", font_color);
theme->set_color("selection_color", "TextEdit", selection_color);
+ theme->set_constant("line_spacing", "TextEdit", 4 * EDSCALE);
// CodeEdit
+ theme->set_font("font", "CodeEdit", theme->get_font("source", "EditorFonts"));
+ theme->set_font_size("font_size", "CodeEdit", theme->get_font_size("source_size", "EditorFonts"));
theme->set_stylebox("normal", "CodeEdit", style_widget);
theme->set_stylebox("focus", "CodeEdit", style_widget_hover);
theme->set_stylebox("read_only", "CodeEdit", style_widget_disabled);
- theme->set_constant("side_margin", "TabContainer", 0);
theme->set_icon("tab", "CodeEdit", theme->get_icon("GuiTab", "EditorIcons"));
theme->set_icon("space", "CodeEdit", theme->get_icon("GuiSpace", "EditorIcons"));
theme->set_icon("folded", "CodeEdit", theme->get_icon("GuiTreeArrowRight", "EditorIcons"));
theme->set_icon("can_fold", "CodeEdit", theme->get_icon("GuiTreeArrowDown", "EditorIcons"));
theme->set_icon("executing_line", "CodeEdit", theme->get_icon("MainPlay", "EditorIcons"));
- theme->set_color("font_color", "CodeEdit", font_color);
- theme->set_color("caret_color", "CodeEdit", font_color);
- theme->set_color("selection_color", "CodeEdit", selection_color);
+ theme->set_constant("line_spacing", "CodeEdit", EDITOR_DEF("text_editor/theme/line_spacing", 6));
// H/VSplitContainer
theme->set_stylebox("bg", "VSplitContainer", make_stylebox(theme->get_icon("GuiVsplitBg", "EditorIcons"), 1, 1, 1, 1));
@@ -1232,6 +1232,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_icon("reset", "GraphEdit", theme->get_icon("ZoomReset", "EditorIcons"));
theme->set_icon("snap", "GraphEdit", theme->get_icon("SnapGrid", "EditorIcons"));
theme->set_icon("minimap", "GraphEdit", theme->get_icon("GridMinimap", "EditorIcons"));
+ theme->set_icon("layout", "GraphEdit", theme->get_icon("GridLayout", "EditorIcons"));
theme->set_constant("bezier_len_pos", "GraphEdit", 80 * EDSCALE);
theme->set_constant("bezier_len_neg", "GraphEdit", 160 * EDSCALE);
@@ -1345,7 +1346,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("folder_icon_modulate", "FileDialog", (dark_theme ? Color(1, 1, 1) : Color(4.25, 4.25, 4.25)).lerp(accent_color, 0.7));
theme->set_color("files_disabled", "FileDialog", font_disabled_color);
- // color picker
+ // ColorPicker
theme->set_constant("margin", "ColorPicker", popup_margin_size);
theme->set_constant("sv_width", "ColorPicker", 256 * EDSCALE);
theme->set_constant("sv_height", "ColorPicker", 256 * EDSCALE);
@@ -1358,6 +1359,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_icon("bar_arrow", "ColorPicker", theme->get_icon("ColorPickerBarArrow", "EditorIcons"));
theme->set_icon("picker_cursor", "ColorPicker", theme->get_icon("PickerCursor", "EditorIcons"));
+ // ColorPickerButton
theme->set_icon("bg", "ColorPickerButton", theme->get_icon("GuiMiniCheckerboard", "EditorIcons"));
// Information on 3D viewport
@@ -1470,6 +1472,29 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
setting->load_text_editor_theme();
}
+ // Now theme is loaded, apply it to CodeEdit.
+ theme->set_color("background_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/background_color"));
+ theme->set_color("completion_background_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/completion_background_color"));
+ theme->set_color("completion_selected_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/completion_selected_color"));
+ theme->set_color("completion_existing_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/completion_existing_color"));
+ theme->set_color("completion_scroll_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/completion_scroll_color"));
+ theme->set_color("completion_font_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/completion_font_color"));
+ theme->set_color("font_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/text_color"));
+ theme->set_color("line_number_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/line_number_color"));
+ theme->set_color("caret_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/caret_color"));
+ theme->set_color("font_selected_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/text_selected_color"));
+ theme->set_color("selection_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/selection_color"));
+ theme->set_color("brace_mismatch_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/brace_mismatch_color"));
+ theme->set_color("current_line_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/current_line_color"));
+ theme->set_color("line_length_guideline_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/line_length_guideline_color"));
+ theme->set_color("word_highlighted_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/word_highlighted_color"));
+ theme->set_color("bookmark_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/bookmark_color"));
+ theme->set_color("breakpoint_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/breakpoint_color"));
+ theme->set_color("executing_line_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/executing_line_color"));
+ theme->set_color("code_folding_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/code_folding_color"));
+ theme->set_color("search_result_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/search_result_color"));
+ theme->set_color("search_result_border_color", "CodeEdit", EDITOR_GET("text_editor/highlighting/search_result_border_color"));
+
return theme;
}
diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp
index 699957897f..b646b3361d 100644
--- a/editor/export_template_manager.cpp
+++ b/editor/export_template_manager.cpp
@@ -889,8 +889,8 @@ ExportTemplateManager::ExportTemplateManager() {
request_mirrors->connect("request_completed", callable_mp(this, &ExportTemplateManager::_refresh_mirrors_completed));
mirror_options_button = memnew(MenuButton);
- mirror_options_button->get_popup()->add_item("Open in Web Browser", VISIT_WEB_MIRROR);
- mirror_options_button->get_popup()->add_item("Copy Mirror URL", COPY_MIRROR_URL);
+ mirror_options_button->get_popup()->add_item(TTR("Open in Web Browser"), VISIT_WEB_MIRROR);
+ mirror_options_button->get_popup()->add_item(TTR("Copy Mirror URL"), COPY_MIRROR_URL);
download_install_hb->add_child(mirror_options_button);
mirror_options_button->get_popup()->connect("id_pressed", callable_mp(this, &ExportTemplateManager::_mirror_options_button_cbk));
diff --git a/editor/icons/GridLayout.svg b/editor/icons/GridLayout.svg
new file mode 100644
index 0000000000..71ad504477
--- /dev/null
+++ b/editor/icons/GridLayout.svg
@@ -0,0 +1 @@
+<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m14 2.1992188v2.6152343l-2.625 1.3125v-2.6152343zm-12 4.0644531 2.625 1.3125v2.5507811l-2.625-1.3124999zm12 0v2.5507812l-2.625 1.3124999v-2.5507811zm-8 1.4550781h4v2.640625h-4zm-4 2.560547 2.625 1.3125v2.521484l-2.625-1.3125zm12 0v2.521484l-2.625 1.3125v-2.521484zm-8 1.455078h4v2.640625h-4zm1.7014535-8.109375h2.2985465v2.734375h-4.15625s-.7487346.647119-.8746377.640625c-.1310411-.0067594-1.5097373-1.4558594-1.5097373-1.4558594l-1.459375-.7296875v-2.6152343l.068419.034223s.026411-.4573464.062111-.6760553c.0346282-.2121439.1970747-.59225724.1970747-.59225724l-1.0483078-.52372301c-.0795772-.04012218-.1668141-.06276382-.2558594-.06640625-.35427845-.01325803-.64865004.27047362-.6484375.625v12c.00021484.236623.13402736.45284.34570312.558594l3.99999998 2c.086686.043505.1823067.06624.2792969.066406h6c.09699-.000166.192611-.0229.279297-.06641l4-2c.211676-.10575.345488-.321967.345703-.55859v-12c-.000468-.46423753-.488958-.76598317-.904297-.55859375l-3.869141 1.93359375h-2.9709527s.033448.4166167.015891.625c-.029188.3464401-.1950466.625-.1950468.625z" fill="#b05b5b"/><path d="m5 6s-2.21875-2.1616704-2.21875-3.2425057c0-1.0808352 0-2.6072392 2.21875-2.6072392s2.21875 1.526404 2.21875 2.6072392c0 1.0808353-2.21875 3.2425057-2.21875 3.2425057z" fill="#fff" fill-opacity=".68627"/></svg>
diff --git a/editor/icons/PrismMesh.svg b/editor/icons/PrismMesh.svg
index cca52bb7b0..0fd169cc8c 100644
--- a/editor/icons/PrismMesh.svg
+++ b/editor/icons/PrismMesh.svg
@@ -1 +1 @@
-<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m7.9824 1.002a1.0001 1.0001 0 0 0 -.81445.44336l-5.9727 8.9609-.027344.03906a1 1 0 0 0 -.0625.10742 1 1 0 0 0 .44727 1.3418l6 3a1.0001 1.0001 0 0 0 .89453 0l6-3a1 1 0 0 0 .44726-1.3418 1 1 0 0 0 -.0625-.10742l-6-9a1.0001 1.0001 0 0 0 -.84961-.44336zm-.98242 4.3008v7.0801l-3.5391-1.7715zm2 0 3.5391 5.3086-3.5391 1.7715z" fill="#ffca5f"/></svg>
+<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m3.9168678 1.8860265c-.3598509 1.0771598-1.9743383 5.9072035-2.95075512 8.8641335-.15505871.56144.26297692 1.081021.77506042 1.256186 1.9729807.978051 3.9341568 1.98391 5.9144721 2.944682.5872542.201411 1.0933197-.27019 1.6046594-.478049 1.7521944-.878995 3.5092364-1.748814 5.2583944-2.633556.53543-.305954.598247-1.041459.264856-1.51829-.991782-1.9723689-1.966021-3.9544106-2.968743-5.9207481-.320568-.4259931-.882722-.5397422-1.322158-.8066387-1.7413894-.8632626-4.7187151-2.3492561-5.2199521-2.59935915-.501237-.2501031-.9959833-.18552039-1.3558341.89163945zm1.6236276 1.4766588 4.2114703 2.1046892-2.3703904 7.1132625-4.2114703-2.104688zm5.6257546 4.2135626 1.479141 2.9582811-2.9603737 1.481232z" fill="#ffca5f"/></svg>
diff --git a/editor/icons/RayShape2D.svg b/editor/icons/RayShape2D.svg
deleted file mode 100644
index aa8cee1210..0000000000
--- a/editor/icons/RayShape2D.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m8 1a1 1 0 0 0 -1 1v9.5859l-1.293-1.293a1 1 0 0 0 -.7207-.29102 1 1 0 0 0 -.69336.29102 1 1 0 0 0 0 1.4141l3 3a1.0001 1.0001 0 0 0 .0039062.003907 1 1 0 0 0 .050781.044921 1.0001 1.0001 0 0 0 .03125.027344 1 1 0 0 0 .048828.035156 1.0001 1.0001 0 0 0 .023438.015625 1 1 0 0 0 .076172.044922 1.0001 1.0001 0 0 0 .0058593.003906 1 1 0 0 0 .013672.007813 1.0001 1.0001 0 0 0 .078125.035156 1 1 0 0 0 .074219.025391 1.0001 1.0001 0 0 0 .025391.009766 1 1 0 0 0 .039062.009765 1.0001 1.0001 0 0 0 .068359.013672 1.0001 1.0001 0 0 0 .097656.011719 1.0001 1.0001 0 0 0 .0078125 0 1 1 0 0 0 .0625.003906 1 1 0 0 0 .015625-.001953 1.0001 1.0001 0 0 0 .083984-.003906 1 1 0 0 0 .015625-.001953 1.0001 1.0001 0 0 0 .083984-.013672 1.0001 1.0001 0 0 0 .052734-.013672 1 1 0 0 0 .058594-.015625 1.0001 1.0001 0 0 0 .078125-.029297 1 1 0 0 0 .013672-.00586 1.0001 1.0001 0 0 0 .076172-.037109 1 1 0 0 0 .013672-.007812 1.0001 1.0001 0 0 0 .072266-.044922 1 1 0 0 0 .011719-.007813 1.0001 1.0001 0 0 0 .068359-.052734 1 1 0 0 0 .011719-.009766 1.0001 1.0001 0 0 0 .050781-.046875l.0097657-.011719 2.9902-2.9883a1 1 0 0 0 0-1.4141 1 1 0 0 0 -1.4141 0l-1.293 1.293v-9.5859a1 1 0 0 0 -1-1z" fill="#68b6ff" fill-rule="evenodd"/></svg>
diff --git a/editor/icons/RayShape3D.svg b/editor/icons/RayShape3D.svg
deleted file mode 100644
index 44d32fe83b..0000000000
--- a/editor/icons/RayShape3D.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="m8 1-6 5 4 2.666v4.334l2 2v-5-2z" fill="#a2d2ff"/><path d="m8 1v7 2l-2-1.334v1.334l2 1.5v3.5l2-2v-4.334l4-2.666z" fill="#2998ff"/></g></svg>
diff --git a/editor/import/editor_import_collada.cpp b/editor/import/editor_import_collada.cpp
index b615c73422..54b93edcdd 100644
--- a/editor/import/editor_import_collada.cpp
+++ b/editor/import/editor_import_collada.cpp
@@ -1414,7 +1414,7 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones
//animation->set_loop(true);
//create animation tracks
- Vector<float> base_snapshots;
+ Vector<real_t> base_snapshots;
float f = 0;
float snapshot_interval = 1.0 / bake_fps; //should be customizable somewhere...
@@ -1466,7 +1466,7 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones
animation->track_set_path(track, path);
animation->track_set_imported(track, true); //helps merging later
- Vector<float> snapshots = base_snapshots;
+ Vector<real_t> snapshots = base_snapshots;
if (nm.anim_tracks.size() == 1) {
//use snapshot keys from anim track instead, because this was most likely exported baked
diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp
index 2ac8b8bd7d..d5bb21443c 100644
--- a/editor/import/resource_importer_layered_texture.cpp
+++ b/editor/import/resource_importer_layered_texture.cpp
@@ -341,10 +341,7 @@ Error ResourceImporterLayeredTexture::import(const String &p_source_file, const
if (compress_mode == COMPRESS_VRAM_COMPRESSED) {
mipmaps = true;
- }
- //optimize
- if (compress_mode == COMPRESS_VRAM_COMPRESSED) {
//if using video ram, optimize
if (channel_pack == 0) {
//remove alpha if not needed, so compression is more efficient
diff --git a/editor/import/resource_importer_scene.cpp b/editor/import/resource_importer_scene.cpp
index 50aae6c434..492fa3f965 100644
--- a/editor/import/resource_importer_scene.cpp
+++ b/editor/import/resource_importer_scene.cpp
@@ -45,7 +45,6 @@
#include "scene/resources/animation.h"
#include "scene/resources/box_shape_3d.h"
#include "scene/resources/packed_scene.h"
-#include "scene/resources/ray_shape_3d.h"
#include "scene/resources/resource_format_text.h"
#include "scene/resources/sphere_shape_3d.h"
#include "scene/resources/surface_tool.h"
@@ -381,11 +380,6 @@ Node *ResourceImporterScene::_pre_fix_node(Node *p_node, Node *p_root, Map<Ref<E
BoxShape3D *boxShape = memnew(BoxShape3D);
boxShape->set_size(Vector3(2, 2, 2));
colshape->set_shape(boxShape);
- } else if (empty_draw_type == "SINGLE_ARROW") {
- RayShape3D *rayShape = memnew(RayShape3D);
- rayShape->set_length(1);
- colshape->set_shape(rayShape);
- Object::cast_to<Node3D>(sb)->rotate_x(Math_PI / 2);
} else if (empty_draw_type == "IMAGE") {
WorldMarginShape3D *world_margin_shape = memnew(WorldMarginShape3D);
colshape->set_shape(world_margin_shape);
diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp
index 5fe466140b..a3ff312497 100644
--- a/editor/plugin_config_dialog.cpp
+++ b/editor/plugin_config_dialog.cpp
@@ -282,7 +282,7 @@ PluginConfigDialog::PluginConfigDialog() {
desc_edit = memnew(TextEdit);
desc_edit->set_custom_minimum_size(Size2(400, 80) * EDSCALE);
- desc_edit->set_wrap_enabled(true);
+ desc_edit->set_line_wrapping_mode(TextEdit::LineWrappingMode::LINE_WRAPPING_BOUNDARY);
grid->add_child(desc_edit);
// Author
diff --git a/editor/plugins/animation_blend_space_1d_editor.h b/editor/plugins/animation_blend_space_1d_editor.h
index 24c950fdee..fe98a91ab3 100644
--- a/editor/plugins/animation_blend_space_1d_editor.h
+++ b/editor/plugins/animation_blend_space_1d_editor.h
@@ -92,7 +92,7 @@ class AnimationNodeBlendSpace1DEditor : public AnimationTreeNodeEditorPlugin {
PopupMenu *animations_menu;
Vector<String> animations_to_add;
float add_point_pos;
- Vector<float> points;
+ Vector<real_t> points;
bool dragging_selected_attempt;
bool dragging_selected;
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index 681c3e7195..b4e9f468de 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -1246,6 +1246,8 @@ void AnimationPlayerEditor::_unhandled_key_input(const Ref<InputEvent> &p_ev) {
}
accept_event();
} break;
+ default:
+ break;
}
}
}
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index c440064898..76c056ed33 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -41,6 +41,7 @@
#include "editor/editor_settings.h"
#include "editor/plugins/animation_player_editor_plugin.h"
#include "editor/plugins/script_editor_plugin.h"
+#include "scene/2d/cpu_particles_2d.h"
#include "scene/2d/gpu_particles_2d.h"
#include "scene/2d/light_2d.h"
#include "scene/2d/polygon_2d.h"
@@ -4073,7 +4074,7 @@ void CanvasItemEditor::_popup_warning_depop(Control *p_control) {
info_overlay->set_offset(SIDE_LEFT, (show_rulers ? RULER_WIDTH : 0) + 10);
}
-void CanvasItemEditor::_popup_warning_temporarily(Control *p_control, const float p_duration) {
+void CanvasItemEditor::_popup_warning_temporarily(Control *p_control, const double p_duration) {
Timer *timer;
if (!popup_temporarily_timers.has(p_control)) {
timer = memnew(Timer);
@@ -5740,7 +5741,7 @@ void CanvasItemEditorViewport::_on_change_type_confirmed() {
}
CheckBox *check = Object::cast_to<CheckBox>(button_group->get_pressed_button());
- default_type = check->get_text();
+ default_texture_node_type = check->get_text();
_perform_drop_data();
selector->hide();
}
@@ -5832,14 +5833,13 @@ void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String &
child->set_name(name);
Ref<Texture2D> texture = Ref<Texture2D>(Object::cast_to<Texture2D>(ResourceCache::get(path)));
- Size2 texture_size = texture->get_size();
if (parent) {
editor_data->get_undo_redo().add_do_method(parent, "add_child", child);
editor_data->get_undo_redo().add_do_method(child, "set_owner", editor->get_edited_scene());
editor_data->get_undo_redo().add_do_reference(child);
editor_data->get_undo_redo().add_undo_method(parent, "remove_child", child);
- } else { // if we haven't parent, lets try to make a child as a parent.
+ } else { // If no parent is selected, set as root node of the scene.
editor_data->get_undo_redo().add_do_method(editor, "set_edited_scene", child);
editor_data->get_undo_redo().add_do_method(child, "set_owner", editor->get_edited_scene());
editor_data->get_undo_redo().add_do_reference(child);
@@ -5853,28 +5853,23 @@ void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String &
editor_data->get_undo_redo().add_undo_method(ed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name));
}
- // handle with different property for texture
- String property = "texture";
- List<PropertyInfo> props;
- child->get_property_list(&props);
- for (const PropertyInfo &E : props) {
- if (E.name == "config/texture") { // Particles2D
- property = "config/texture";
- break;
- } else if (E.name == "texture/texture") { // Polygon2D
- property = "texture/texture";
- break;
- } else if (E.name == "normal") { // TouchScreenButton
- property = "normal";
- break;
- }
+ String node_class = child->get_class();
+ if (node_class == "Polygon2D") {
+ editor_data->get_undo_redo().add_do_property(child, "texture/texture", texture);
+ } else if (node_class == "TouchScreenButton") {
+ editor_data->get_undo_redo().add_do_property(child, "normal", texture);
+ } else if (node_class == "TextureButton") {
+ editor_data->get_undo_redo().add_do_property(child, "texture_button", texture);
+ } else {
+ editor_data->get_undo_redo().add_do_property(child, "texture", texture);
}
- editor_data->get_undo_redo().add_do_property(child, property, texture);
// make visible for certain node type
- if (default_type == "NinePatchRect") {
- editor_data->get_undo_redo().add_do_property(child, "rect/size", texture_size);
- } else if (default_type == "Polygon2D") {
+ if (ClassDB::is_parent_class(node_class, "Control")) {
+ Size2 texture_size = texture->get_size();
+ editor_data->get_undo_redo().add_do_property(child, "rect_size", texture_size);
+ } else if (node_class == "Polygon2D") {
+ Size2 texture_size = texture->get_size();
Vector<Vector2> list;
list.push_back(Vector2(0, 0));
list.push_back(Vector2(texture_size.width, 0));
@@ -5975,23 +5970,7 @@ void CanvasItemEditorViewport::_perform_drop_data() {
} else {
Ref<Texture2D> texture = Ref<Texture2D>(Object::cast_to<Texture2D>(*res));
if (texture != nullptr && texture.is_valid()) {
- Node *child;
- if (default_type == "Light2D") {
- child = memnew(Light2D);
- } else if (default_type == "GPUParticles2D") {
- child = memnew(GPUParticles2D);
- } else if (default_type == "Polygon2D") {
- child = memnew(Polygon2D);
- } else if (default_type == "TouchScreenButton") {
- child = memnew(TouchScreenButton);
- } else if (default_type == "TextureRect") {
- child = memnew(TextureRect);
- } else if (default_type == "NinePatchRect") {
- child = memnew(NinePatchRect);
- } else {
- child = memnew(Sprite2D); // default
- }
-
+ Node *child = _make_texture_node_type(default_texture_node_type);
_create_nodes(target_node, child, path, drop_pos);
}
}
@@ -6029,13 +6008,7 @@ bool CanvasItemEditorViewport::can_drop_data(const Point2 &p_point, const Varian
continue;
}
memdelete(instantiated_scene);
- } else if (type == "Texture2D" ||
- type == "ImageTexture" ||
- type == "ViewportTexture" ||
- type == "CurveTexture" ||
- type == "GradientTexture" ||
- type == "StreamTexture2D" ||
- type == "AtlasTexture") {
+ } else if (ClassDB::is_parent_class(type, "Texture2D")) {
Ref<Texture2D> texture = Ref<Texture2D>(Object::cast_to<Texture2D>(*res));
if (!texture.is_valid()) {
continue;
@@ -6052,7 +6025,7 @@ bool CanvasItemEditorViewport::can_drop_data(const Point2 &p_point, const Varian
}
Transform2D trans = canvas_item_editor->get_canvas_transform();
preview_node->set_position((p_point - trans.get_origin()) / trans.get_scale().x);
- label->set_text(vformat(TTR("Adding %s..."), default_type));
+ label->set_text(vformat(TTR("Adding %s..."), default_texture_node_type));
}
return can_instantiate;
}
@@ -6068,9 +6041,9 @@ void CanvasItemEditorViewport::_show_resource_type_selector() {
for (int i = 0; i < btn_list.size(); i++) {
CheckBox *check = Object::cast_to<CheckBox>(btn_list[i]);
- check->set_pressed(check->get_text() == default_type);
+ check->set_pressed(check->get_text() == default_texture_node_type);
}
- selector->set_title(vformat(TTR("Add %s"), default_type));
+ selector->set_title(vformat(TTR("Add %s"), default_texture_node_type));
selector->popup_centered();
}
@@ -6126,6 +6099,30 @@ void CanvasItemEditorViewport::drop_data(const Point2 &p_point, const Variant &p
}
}
+Node *CanvasItemEditorViewport::_make_texture_node_type(String texture_node_type) {
+ Node *node = nullptr;
+ if (texture_node_type == "Sprite2D") {
+ node = memnew(Sprite2D);
+ } else if (texture_node_type == "PointLight2D") {
+ node = memnew(PointLight2D);
+ } else if (texture_node_type == "CPUParticles2D") {
+ node = memnew(CPUParticles2D);
+ } else if (texture_node_type == "GPUParticles2D") {
+ node = memnew(GPUParticles2D);
+ } else if (texture_node_type == "Polygon2D") {
+ node = memnew(Polygon2D);
+ } else if (texture_node_type == "TouchScreenButton") {
+ node = memnew(TouchScreenButton);
+ } else if (texture_node_type == "TextureRect") {
+ node = memnew(TextureRect);
+ } else if (texture_node_type == "TextureButton") {
+ node = memnew(TextureButton);
+ } else if (texture_node_type == "NinePatchRect") {
+ node = memnew(NinePatchRect);
+ }
+ return node;
+}
+
void CanvasItemEditorViewport::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {
@@ -6145,22 +6142,24 @@ void CanvasItemEditorViewport::_bind_methods() {
}
CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasItemEditor *p_canvas_item_editor) {
- default_type = "Sprite2D";
+ default_texture_node_type = "Sprite2D";
// Node2D
- types.push_back("Sprite2D");
- types.push_back("Light2D");
- types.push_back("GPUParticles2D");
- types.push_back("Polygon2D");
- types.push_back("TouchScreenButton");
+ texture_node_types.push_back("Sprite2D");
+ texture_node_types.push_back("PointLight2D");
+ texture_node_types.push_back("CPUParticles2D");
+ texture_node_types.push_back("GPUParticles2D");
+ texture_node_types.push_back("Polygon2D");
+ texture_node_types.push_back("TouchScreenButton");
// Control
- types.push_back("TextureRect");
- types.push_back("NinePatchRect");
+ texture_node_types.push_back("TextureRect");
+ texture_node_types.push_back("TextureButton");
+ texture_node_types.push_back("NinePatchRect");
target_node = nullptr;
editor = p_node;
editor_data = editor->get_scene_tree_dock()->get_editor_data();
canvas_item_editor = p_canvas_item_editor;
- preview_node = memnew(Node2D);
+ preview_node = memnew(Control);
accept = memnew(AcceptDialog);
editor->get_gui_base()->add_child(accept);
@@ -6182,10 +6181,10 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte
btn_group->set_h_size_flags(0);
button_group.instantiate();
- for (int i = 0; i < types.size(); i++) {
+ for (int i = 0; i < texture_node_types.size(); i++) {
CheckBox *check = memnew(CheckBox);
btn_group->add_child(check);
- check->set_text(types[i]);
+ check->set_text(texture_node_types[i]);
check->connect("button_down", callable_mp(this, &CanvasItemEditorViewport::_on_select_type), varray(check));
check->set_button_group(button_group);
}
diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h
index 1f59dfbc49..bff580315e 100644
--- a/editor/plugins/canvas_item_editor_plugin.h
+++ b/editor/plugins/canvas_item_editor_plugin.h
@@ -56,7 +56,7 @@ public:
Transform2D pre_drag_xform;
Rect2 pre_drag_rect;
- List<float> pre_drag_bones_length;
+ List<real_t> pre_drag_bones_length;
List<Dictionary> pre_drag_bones_undo_state;
Dictionary undo_state;
@@ -540,7 +540,7 @@ private:
VSplitContainer *bottom_split;
void _update_context_menu_stylebox();
- void _popup_warning_temporarily(Control *p_control, const float p_duration);
+ void _popup_warning_temporarily(Control *p_control, const double p_duration);
void _popup_warning_depop(Control *p_control);
void _set_owner_for_node_and_children(Node *p_node, Node *p_owner);
@@ -639,8 +639,10 @@ public:
class CanvasItemEditorViewport : public Control {
GDCLASS(CanvasItemEditorViewport, Control);
- String default_type;
- Vector<String> types;
+ // The type of node that will be created when dropping texture into the viewport.
+ String default_texture_node_type;
+ // Node types that are available to select from when dropping texture into viewport.
+ Vector<String> texture_node_types;
Vector<String> selected_files;
Node *target_node;
@@ -649,7 +651,7 @@ class CanvasItemEditorViewport : public Control {
EditorNode *editor;
EditorData *editor_data;
CanvasItemEditor *canvas_item_editor;
- Node2D *preview_node;
+ Control *preview_node;
AcceptDialog *accept;
AcceptDialog *selector;
Label *selector_label;
@@ -662,6 +664,7 @@ class CanvasItemEditorViewport : public Control {
void _on_select_type(Object *selected);
void _on_change_type_confirmed();
void _on_change_type_closed();
+ Node *_make_texture_node_type(String texture_node_type);
void _create_preview(const Vector<String> &files) const;
void _remove_preview();
diff --git a/editor/plugins/collision_shape_2d_editor_plugin.cpp b/editor/plugins/collision_shape_2d_editor_plugin.cpp
index 2c2adc2672..4266e0f676 100644
--- a/editor/plugins/collision_shape_2d_editor_plugin.cpp
+++ b/editor/plugins/collision_shape_2d_editor_plugin.cpp
@@ -37,7 +37,6 @@
#include "scene/resources/concave_polygon_shape_2d.h"
#include "scene/resources/convex_polygon_shape_2d.h"
#include "scene/resources/line_shape_2d.h"
-#include "scene/resources/ray_shape_2d.h"
#include "scene/resources/rectangle_shape_2d.h"
#include "scene/resources/segment_shape_2d.h"
@@ -86,15 +85,6 @@ Variant CollisionShape2DEditor::get_handle_value(int idx) const {
} break;
- case RAY_SHAPE: {
- Ref<RayShape2D> ray = node->get_shape();
-
- if (idx == 0) {
- return ray->get_length();
- }
-
- } break;
-
case RECTANGLE_SHAPE: {
Ref<RectangleShape2D> rect = node->get_shape();
@@ -130,7 +120,7 @@ void CollisionShape2DEditor::set_handle(int idx, Point2 &p_point) {
if (idx == 0) {
capsule->set_radius(parameter);
} else if (idx == 1) {
- capsule->set_height(parameter * 2 - capsule->get_radius() * 2);
+ capsule->set_height(parameter * 2);
}
canvas_item_editor->update_viewport();
@@ -167,15 +157,6 @@ void CollisionShape2DEditor::set_handle(int idx, Point2 &p_point) {
} break;
- case RAY_SHAPE: {
- Ref<RayShape2D> ray = node->get_shape();
-
- ray->set_length(Math::abs(p_point.y));
-
- canvas_item_editor->update_viewport();
-
- } break;
-
case RECTANGLE_SHAPE: {
if (idx < 8) {
Ref<RectangleShape2D> rect = node->get_shape();
@@ -277,16 +258,6 @@ void CollisionShape2DEditor::commit_handle(int idx, Variant &p_org) {
} break;
- case RAY_SHAPE: {
- Ref<RayShape2D> ray = node->get_shape();
-
- undo_redo->add_do_method(ray.ptr(), "set_length", ray->get_length());
- undo_redo->add_do_method(canvas_item_editor, "update_viewport");
- undo_redo->add_undo_method(ray.ptr(), "set_length", p_org);
- undo_redo->add_undo_method(canvas_item_editor, "update_viewport");
-
- } break;
-
case RECTANGLE_SHAPE: {
Ref<RectangleShape2D> rect = node->get_shape();
@@ -428,8 +399,6 @@ void CollisionShape2DEditor::_get_current_shape_type() {
shape_type = CONVEX_POLYGON_SHAPE;
} else if (Object::cast_to<LineShape2D>(*s)) {
shape_type = LINE_SHAPE;
- } else if (Object::cast_to<RayShape2D>(*s)) {
- shape_type = RAY_SHAPE;
} else if (Object::cast_to<RectangleShape2D>(*s)) {
shape_type = RECTANGLE_SHAPE;
} else if (Object::cast_to<SegmentShape2D>(*s)) {
@@ -471,8 +440,8 @@ void CollisionShape2DEditor::forward_canvas_draw_over_viewport(Control *p_overla
float radius = shape->get_radius();
float height = shape->get_height() / 2;
- handles.write[0] = Point2(radius, height);
- handles.write[1] = Point2(0, height + radius);
+ handles.write[0] = Point2(radius, 0);
+ handles.write[1] = Point2(0, height);
p_overlay->draw_texture(h, gt.xform(handles[0]) - size);
p_overlay->draw_texture(h, gt.xform(handles[1]) - size);
@@ -507,16 +476,6 @@ void CollisionShape2DEditor::forward_canvas_draw_over_viewport(Control *p_overla
} break;
- case RAY_SHAPE: {
- Ref<RayShape2D> shape = node->get_shape();
-
- handles.resize(1);
- handles.write[0] = Point2(0, shape->get_length());
-
- p_overlay->draw_texture(h, gt.xform(handles[0]) - size);
-
- } break;
-
case RECTANGLE_SHAPE: {
Ref<RectangleShape2D> shape = node->get_shape();
diff --git a/editor/plugins/collision_shape_2d_editor_plugin.h b/editor/plugins/collision_shape_2d_editor_plugin.h
index 7db6bd22aa..130ec708cf 100644
--- a/editor/plugins/collision_shape_2d_editor_plugin.h
+++ b/editor/plugins/collision_shape_2d_editor_plugin.h
@@ -47,7 +47,6 @@ class CollisionShape2DEditor : public Control {
CONCAVE_POLYGON_SHAPE,
CONVEX_POLYGON_SHAPE,
LINE_SHAPE,
- RAY_SHAPE,
RECTANGLE_SHAPE,
SEGMENT_SHAPE
};
diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp
index d7618b973e..d47bd2d410 100644
--- a/editor/plugins/editor_preview_plugins.cpp
+++ b/editor/plugins/editor_preview_plugins.cpp
@@ -386,7 +386,7 @@ EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() {
Vector<Vector3> vertices;
Vector<Vector3> normals;
Vector<Vector2> uvs;
- Vector<float> tangents;
+ Vector<real_t> tangents;
Basis tt = Basis(Vector3(0, 1, 0), Math_PI * 0.5);
for (int i = 1; i <= lats; i++) {
@@ -635,7 +635,7 @@ Ref<Texture2D> EditorAudioStreamPreviewPlugin::generate(const RES &p_from, const
Ref<AudioStreamPlayback> playback = stream->instance_playback();
ERR_FAIL_COND_V(playback.is_null(), Ref<Texture2D>());
- float len_s = stream->get_length();
+ real_t len_s = stream->get_length();
if (len_s == 0) {
len_s = 60; //one minute audio if no length specified
}
@@ -649,8 +649,8 @@ Ref<Texture2D> EditorAudioStreamPreviewPlugin::generate(const RES &p_from, const
playback->stop();
for (int i = 0; i < w; i++) {
- float max = -1000;
- float min = 1000;
+ real_t max = -1000;
+ real_t min = 1000;
int from = uint64_t(i) * frame_length / w;
int to = (uint64_t(i) + 1) * frame_length / w;
to = MIN(to, frame_length);
diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.cpp b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
index 5184e837ce..efec5a709d 100644
--- a/editor/plugins/gpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
@@ -60,7 +60,7 @@ void GPUParticles2DEditorPlugin::_file_selected(const String &p_file) {
void GPUParticles2DEditorPlugin::_menu_callback(int p_idx) {
switch (p_idx) {
case MENU_GENERATE_VISIBILITY_RECT: {
- float gen_time = particles->get_lifetime();
+ double gen_time = particles->get_lifetime();
if (gen_time < 1.0) {
generate_seconds->set_value(1.0);
} else {
@@ -100,7 +100,7 @@ void GPUParticles2DEditorPlugin::_menu_callback(int p_idx) {
}
void GPUParticles2DEditorPlugin::_generate_visibility_rect() {
- float time = generate_seconds->get_value();
+ double time = generate_seconds->get_value();
float running = 0.0;
diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
index 8576082597..fff25b6f59 100644
--- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
@@ -282,9 +282,9 @@ void GPUParticles3DEditor::_menu_option(int p_option) {
}
void GPUParticles3DEditor::_generate_aabb() {
- float time = generate_seconds->get_value();
+ double time = generate_seconds->get_value();
- float running = 0.0;
+ double running = 0.0;
EditorProgress ep("gen_aabb", TTR("Generating AABB"), int(time));
diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp
index 46e15d97bf..dcea7b26f3 100644
--- a/editor/plugins/node_3d_editor_gizmos.cpp
+++ b/editor/plugins/node_3d_editor_gizmos.cpp
@@ -66,7 +66,6 @@
#include "scene/resources/cylinder_shape_3d.h"
#include "scene/resources/height_map_shape_3d.h"
#include "scene/resources/primitive_meshes.h"
-#include "scene/resources/ray_shape_3d.h"
#include "scene/resources/sphere_shape_3d.h"
#include "scene/resources/surface_tool.h"
#include "scene/resources/world_margin_shape_3d.h"
@@ -145,7 +144,7 @@ Variant EditorNode3DGizmo::get_handle_value(int p_id) const {
return gizmo_plugin->get_handle_value(this, p_id);
}
-void EditorNode3DGizmo::set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void EditorNode3DGizmo::set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point) {
if (get_script_instance() && get_script_instance()->has_method("_set_handle")) {
get_script_instance()->call("_set_handle", p_id, p_camera, p_point);
return;
@@ -155,7 +154,7 @@ void EditorNode3DGizmo::set_handle(int p_id, Camera3D *p_camera, const Point2 &p
gizmo_plugin->set_handle(this, p_id, p_camera, p_point);
}
-void EditorNode3DGizmo::commit_handle(int p_id, const Variant &p_restore, bool p_cancel) const {
+void EditorNode3DGizmo::commit_handle(int p_id, const Variant &p_restore, bool p_cancel) {
if (get_script_instance() && get_script_instance()->has_method("_commit_handle")) {
get_script_instance()->call("_commit_handle", p_id, p_restore, p_cancel);
return;
@@ -196,7 +195,7 @@ Transform3D EditorNode3DGizmo::get_subgizmo_transform(int p_id) const {
return gizmo_plugin->get_subgizmo_transform(this, p_id);
}
-void EditorNode3DGizmo::set_subgizmo_transform(int p_id, Transform3D p_transform) const {
+void EditorNode3DGizmo::set_subgizmo_transform(int p_id, Transform3D p_transform) {
if (get_script_instance() && get_script_instance()->has_method("_set_subgizmo_transform")) {
get_script_instance()->call("_set_subgizmo_transform", p_id, p_transform);
return;
@@ -206,7 +205,7 @@ void EditorNode3DGizmo::set_subgizmo_transform(int p_id, Transform3D p_transform
gizmo_plugin->set_subgizmo_transform(this, p_id, p_transform);
}
-void EditorNode3DGizmo::commit_subgizmos(const Vector<int> &p_ids, const Vector<Transform3D> &p_restore, bool p_cancel) const {
+void EditorNode3DGizmo::commit_subgizmos(const Vector<int> &p_ids, const Vector<Transform3D> &p_restore, bool p_cancel) {
if (get_script_instance() && get_script_instance()->has_method("_commit_subgizmos")) {
Array ids;
for (int i = 0; i < p_ids.size(); i++) {
@@ -1145,13 +1144,13 @@ Variant EditorNode3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_giz
return Variant();
}
-void EditorNode3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void EditorNode3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
if (get_script_instance() && get_script_instance()->has_method("_set_handle")) {
get_script_instance()->call("_set_handle", p_gizmo, p_id, p_camera, p_point);
}
}
-void EditorNode3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void EditorNode3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
if (get_script_instance() && get_script_instance()->has_method("_commit_handle")) {
get_script_instance()->call("_commit_handle", p_gizmo, p_id, p_restore, p_cancel);
}
@@ -1184,13 +1183,13 @@ Transform3D EditorNode3DGizmoPlugin::get_subgizmo_transform(const EditorNode3DGi
return Transform3D();
}
-void EditorNode3DGizmoPlugin::set_subgizmo_transform(const EditorNode3DGizmo *p_gizmo, int p_id, Transform3D p_transform) const {
+void EditorNode3DGizmoPlugin::set_subgizmo_transform(const EditorNode3DGizmo *p_gizmo, int p_id, Transform3D p_transform) {
if (get_script_instance() && get_script_instance()->has_method("_set_subgizmo_transform")) {
get_script_instance()->call("_set_subgizmo_transform", p_id, p_transform);
}
}
-void EditorNode3DGizmoPlugin::commit_subgizmos(const EditorNode3DGizmo *p_gizmo, const Vector<int> &p_ids, const Vector<Transform3D> &p_restore, bool p_cancel) const {
+void EditorNode3DGizmoPlugin::commit_subgizmos(const EditorNode3DGizmo *p_gizmo, const Vector<int> &p_ids, const Vector<Transform3D> &p_restore, bool p_cancel) {
if (get_script_instance() && get_script_instance()->has_method("_commit_subgizmos")) {
Array ids;
for (int i = 0; i < p_ids.size(); i++) {
@@ -1310,7 +1309,7 @@ static float _find_closest_angle_to_half_pi_arc(const Vector3 &p_from, const Vec
return Math::rad2deg(a);
}
-void Light3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void Light3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
Light3D *light = Object::cast_to<Light3D>(p_gizmo->get_spatial_node());
Transform3D gt = light->get_global_transform();
Transform3D gi = gt.affine_inverse();
@@ -1354,7 +1353,7 @@ void Light3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id,
}
}
-void Light3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void Light3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
Light3D *light = Object::cast_to<Light3D>(p_gizmo->get_spatial_node());
if (p_cancel) {
light->set_param(p_id == 0 ? Light3D::PARAM_RANGE : Light3D::PARAM_SPOT_ANGLE, p_restore);
@@ -1538,7 +1537,7 @@ Variant AudioStreamPlayer3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo
return player->get_emission_angle();
}
-void AudioStreamPlayer3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void AudioStreamPlayer3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
AudioStreamPlayer3D *player = Object::cast_to<AudioStreamPlayer3D>(p_gizmo->get_spatial_node());
Transform3D gt = player->get_global_transform();
@@ -1575,7 +1574,7 @@ void AudioStreamPlayer3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo
}
}
-void AudioStreamPlayer3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void AudioStreamPlayer3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
AudioStreamPlayer3D *player = Object::cast_to<AudioStreamPlayer3D>(p_gizmo->get_spatial_node());
if (p_cancel) {
@@ -1684,7 +1683,7 @@ Variant Camera3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gizmo,
}
}
-void Camera3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void Camera3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
Camera3D *camera = Object::cast_to<Camera3D>(p_gizmo->get_spatial_node());
Transform3D gt = camera->get_global_transform();
@@ -1713,7 +1712,7 @@ void Camera3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id,
}
}
-void Camera3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void Camera3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
Camera3D *camera = Object::cast_to<Camera3D>(p_gizmo->get_spatial_node());
if (camera->get_projection() == Camera3D::PROJECTION_PERSPECTIVE) {
@@ -2572,7 +2571,7 @@ Variant SoftBody3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gizmo
return Variant(soft_body->is_point_pinned(p_id));
}
-void SoftBody3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void SoftBody3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
SoftBody3D *soft_body = Object::cast_to<SoftBody3D>(p_gizmo->get_spatial_node());
soft_body->pin_point_toggle(p_id);
}
@@ -2628,7 +2627,7 @@ Variant VisibleOnScreenNotifier3DGizmoPlugin::get_handle_value(const EditorNode3
return notifier->get_aabb();
}
-void VisibleOnScreenNotifier3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void VisibleOnScreenNotifier3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
VisibleOnScreenNotifier3D *notifier = Object::cast_to<VisibleOnScreenNotifier3D>(p_gizmo->get_spatial_node());
Transform3D gt = notifier->get_global_transform();
@@ -2680,7 +2679,7 @@ void VisibleOnScreenNotifier3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p
}
}
-void VisibleOnScreenNotifier3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void VisibleOnScreenNotifier3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
VisibleOnScreenNotifier3D *notifier = Object::cast_to<VisibleOnScreenNotifier3D>(p_gizmo->get_spatial_node());
if (p_cancel) {
@@ -2820,7 +2819,7 @@ Variant GPUParticles3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_g
return particles->get_visibility_aabb();
}
-void GPUParticles3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void GPUParticles3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
GPUParticles3D *particles = Object::cast_to<GPUParticles3D>(p_gizmo->get_spatial_node());
Transform3D gt = particles->get_global_transform();
@@ -2871,7 +2870,7 @@ void GPUParticles3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int
}
}
-void GPUParticles3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void GPUParticles3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
GPUParticles3D *particles = Object::cast_to<GPUParticles3D>(p_gizmo->get_spatial_node());
if (p_cancel) {
@@ -2985,7 +2984,7 @@ Variant GPUParticlesCollision3DGizmoPlugin::get_handle_value(const EditorNode3DG
return Variant();
}
-void GPUParticlesCollision3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void GPUParticlesCollision3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
Node3D *sn = p_gizmo->get_spatial_node();
Transform3D gt = sn->get_global_transform();
@@ -3031,7 +3030,7 @@ void GPUParticlesCollision3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_g
}
}
-void GPUParticlesCollision3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void GPUParticlesCollision3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
Node3D *sn = p_gizmo->get_spatial_node();
if (Object::cast_to<GPUParticlesCollisionSphere>(sn) || Object::cast_to<GPUParticlesAttractorSphere>(sn)) {
@@ -3245,7 +3244,7 @@ Variant ReflectionProbeGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_
return AABB(probe->get_extents(), probe->get_origin_offset());
}
-void ReflectionProbeGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void ReflectionProbeGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
ReflectionProbe *probe = Object::cast_to<ReflectionProbe>(p_gizmo->get_spatial_node());
Transform3D gt = probe->get_global_transform();
@@ -3302,7 +3301,7 @@ void ReflectionProbeGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, in
}
}
-void ReflectionProbeGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void ReflectionProbeGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
ReflectionProbe *probe = Object::cast_to<ReflectionProbe>(p_gizmo->get_spatial_node());
AABB restore = p_restore;
@@ -3424,7 +3423,7 @@ Variant DecalGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gizmo, int
return decal->get_extents();
}
-void DecalGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void DecalGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
Decal *decal = Object::cast_to<Decal>(p_gizmo->get_spatial_node());
Transform3D gt = decal->get_global_transform();
@@ -3455,7 +3454,7 @@ void DecalGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Ca
decal->set_extents(extents);
}
-void DecalGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void DecalGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
Decal *decal = Object::cast_to<Decal>(p_gizmo->get_spatial_node());
Vector3 restore = p_restore;
@@ -3564,7 +3563,7 @@ Variant VoxelGIGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gizmo, i
return probe->get_extents();
}
-void VoxelGIGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void VoxelGIGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
VoxelGI *probe = Object::cast_to<VoxelGI>(p_gizmo->get_spatial_node());
Transform3D gt = probe->get_global_transform();
@@ -3595,7 +3594,7 @@ void VoxelGIGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id,
probe->set_extents(extents);
}
-void VoxelGIGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void VoxelGIGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
VoxelGI *probe = Object::cast_to<VoxelGI>(p_gizmo->get_spatial_node());
Vector3 restore = p_restore;
@@ -3723,10 +3722,10 @@ Variant LightmapGIGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gizmo
return Variant();
}
-void LightmapGIGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void LightmapGIGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
}
-void LightmapGIGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void LightmapGIGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
}
bool LightmapGIGizmoPlugin::has_gizmo(Node3D *p_spatial) {
@@ -3905,10 +3904,10 @@ Variant LightmapProbeGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gi
return Variant();
}
-void LightmapProbeGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void LightmapProbeGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
}
-void LightmapProbeGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void LightmapProbeGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
}
bool LightmapProbeGizmoPlugin::has_gizmo(Node3D *p_spatial) {
@@ -4081,10 +4080,6 @@ String CollisionShape3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_g
return p_id == 0 ? "Radius" : "Height";
}
- if (Object::cast_to<RayShape3D>(*s)) {
- return "Length";
- }
-
return "";
}
@@ -4116,15 +4111,10 @@ Variant CollisionShape3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p
return p_id == 0 ? cs2->get_radius() : cs2->get_height();
}
- if (Object::cast_to<RayShape3D>(*s)) {
- Ref<RayShape3D> cs2 = s;
- return cs2->get_length();
- }
-
return Variant();
}
-void CollisionShape3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void CollisionShape3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) {
CollisionShape3D *cs = Object::cast_to<CollisionShape3D>(p_gizmo->get_spatial_node());
Ref<Shape3D> s = cs->get_shape();
@@ -4156,22 +4146,6 @@ void CollisionShape3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, i
ss->set_radius(d);
}
- if (Object::cast_to<RayShape3D>(*s)) {
- Ref<RayShape3D> rs = s;
- Vector3 ra, rb;
- Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(0, 0, 4096), sg[0], sg[1], ra, rb);
- float d = ra.z;
- if (Node3DEditor::get_singleton()->is_snap_enabled()) {
- d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap());
- }
-
- if (d < 0.001) {
- d = 0.001;
- }
-
- rs->set_length(d);
- }
-
if (Object::cast_to<BoxShape3D>(*s)) {
Vector3 axis;
axis[p_id] = 1.0;
@@ -4194,14 +4168,11 @@ void CollisionShape3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, i
if (Object::cast_to<CapsuleShape3D>(*s)) {
Vector3 axis;
- axis[p_id == 0 ? 0 : 2] = 1.0;
+ axis[p_id == 0 ? 0 : 1] = 1.0;
Ref<CapsuleShape3D> cs2 = s;
Vector3 ra, rb;
Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb);
float d = axis.dot(ra);
- if (p_id == 1) {
- d -= cs2->get_radius();
- }
if (Node3DEditor::get_singleton()->is_snap_enabled()) {
d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap());
@@ -4241,7 +4212,7 @@ void CollisionShape3DGizmoPlugin::set_handle(const EditorNode3DGizmo *p_gizmo, i
}
}
-void CollisionShape3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) const {
+void CollisionShape3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel) {
CollisionShape3D *cs = Object::cast_to<CollisionShape3D>(p_gizmo->get_spatial_node());
Ref<Shape3D> s = cs->get_shape();
@@ -4330,20 +4301,6 @@ void CollisionShape3DGizmoPlugin::commit_handle(const EditorNode3DGizmo *p_gizmo
ur->commit_action();
}
-
- if (Object::cast_to<RayShape3D>(*s)) {
- Ref<RayShape3D> ss = s;
- if (p_cancel) {
- ss->set_length(p_restore);
- return;
- }
-
- UndoRedo *ur = Node3DEditor::get_singleton()->get_undo_redo();
- ur->create_action(TTR("Change Ray Shape Length"));
- ur->add_do_method(ss.ptr(), "set_length", ss->get_length());
- ur->add_undo_method(ss.ptr(), "set_length", p_restore);
- ur->commit_action();
- }
}
void CollisionShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
@@ -4437,7 +4394,7 @@ void CollisionShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
Vector<Vector3> points;
- Vector3 d(0, height * 0.5, 0);
+ Vector3 d(0, height * 0.5 - radius, 0);
for (int i = 0; i < 360; i++) {
float ra = Math::deg2rad((float)i);
float rb = Math::deg2rad((float)i + 1);
@@ -4496,7 +4453,7 @@ void CollisionShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
Vector<Vector3> handles;
handles.push_back(Vector3(cs2->get_radius(), 0, 0));
- handles.push_back(Vector3(0, cs2->get_height() * 0.5 + cs2->get_radius(), 0));
+ handles.push_back(Vector3(0, cs2->get_height() * 0.5, 0));
p_gizmo->add_handles(handles, handles_material);
}
@@ -4614,19 +4571,6 @@ void CollisionShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
p_gizmo->add_collision_segments(cs2->get_debug_mesh_lines());
}
- if (Object::cast_to<RayShape3D>(*s)) {
- Ref<RayShape3D> rs = s;
-
- Vector<Vector3> points;
- points.push_back(Vector3());
- points.push_back(Vector3(0, 0, rs->get_length()));
- p_gizmo->add_lines(points, material);
- p_gizmo->add_collision_segments(points);
- Vector<Vector3> handles;
- handles.push_back(Vector3(0, 0, rs->get_length()));
- p_gizmo->add_handles(handles, handles_material);
- }
-
if (Object::cast_to<HeightMapShape3D>(*s)) {
Ref<HeightMapShape3D> hms = s;
diff --git a/editor/plugins/node_3d_editor_gizmos.h b/editor/plugins/node_3d_editor_gizmos.h
index f303a61607..64f46f2b1a 100644
--- a/editor/plugins/node_3d_editor_gizmos.h
+++ b/editor/plugins/node_3d_editor_gizmos.h
@@ -63,7 +63,7 @@ class EditorNode3DGizmo : public Node3DGizmo {
Vector<Vector3> secondary_handles;
Vector<int> secondary_handle_ids;
- float selectable_icon_size;
+ real_t selectable_icon_size;
bool billboard_handle;
bool valid;
@@ -91,14 +91,14 @@ public:
virtual bool is_handle_highlighted(int p_id) const;
virtual String get_handle_name(int p_id) const;
virtual Variant get_handle_value(int p_id) const;
- virtual void set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point) const;
- virtual void commit_handle(int p_id, const Variant &p_restore, bool p_cancel = false) const;
+ virtual void set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point);
+ virtual void commit_handle(int p_id, const Variant &p_restore, bool p_cancel = false);
virtual int subgizmos_intersect_ray(Camera3D *p_camera, const Vector2 &p_point) const;
virtual Vector<int> subgizmos_intersect_frustum(const Camera3D *p_camera, const Vector<Plane> &p_frustum) const;
virtual Transform3D get_subgizmo_transform(int p_id) const;
- virtual void set_subgizmo_transform(int p_id, Transform3D p_transform) const;
- virtual void commit_subgizmos(const Vector<int> &p_ids, const Vector<Transform3D> &p_restore, bool p_cancel = false) const;
+ virtual void set_subgizmo_transform(int p_id, Transform3D p_transform);
+ virtual void commit_subgizmos(const Vector<int> &p_ids, const Vector<Transform3D> &p_restore, bool p_cancel = false);
void set_selected(bool p_selected) { selected = p_selected; }
bool is_selected() const { return selected; }
@@ -161,14 +161,14 @@ public:
virtual bool is_handle_highlighted(const EditorNode3DGizmo *p_gizmo, int p_id) const;
virtual String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const;
virtual Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const;
- virtual void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const;
- virtual void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const;
+ virtual void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point);
+ virtual void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false);
virtual int subgizmos_intersect_ray(const EditorNode3DGizmo *p_gizmo, Camera3D *p_camera, const Vector2 &p_point) const;
virtual Vector<int> subgizmos_intersect_frustum(const EditorNode3DGizmo *p_gizmo, const Camera3D *p_camera, const Vector<Plane> &p_frustum) const;
virtual Transform3D get_subgizmo_transform(const EditorNode3DGizmo *p_gizmo, int p_id) const;
- virtual void set_subgizmo_transform(const EditorNode3DGizmo *p_gizmo, int p_id, Transform3D p_transform) const;
- virtual void commit_subgizmos(const EditorNode3DGizmo *p_gizmo, const Vector<int> &p_ids, const Vector<Transform3D> &p_restore, bool p_cancel = false) const;
+ virtual void set_subgizmo_transform(const EditorNode3DGizmo *p_gizmo, int p_id, Transform3D p_transform);
+ virtual void commit_subgizmos(const EditorNode3DGizmo *p_gizmo, const Vector<int> &p_ids, const Vector<Transform3D> &p_restore, bool p_cancel = false);
Ref<EditorNode3DGizmo> get_gizmo(Node3D *p_spatial);
void set_state(int p_state);
@@ -189,8 +189,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
void redraw(EditorNode3DGizmo *p_gizmo) override;
Light3DGizmoPlugin();
@@ -206,8 +206,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
void redraw(EditorNode3DGizmo *p_gizmo) override;
AudioStreamPlayer3DGizmoPlugin();
@@ -223,8 +223,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
void redraw(EditorNode3DGizmo *p_gizmo) override;
Camera3DGizmoPlugin();
@@ -355,7 +355,7 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
bool is_handle_highlighted(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
SoftBody3DGizmoPlugin();
@@ -372,8 +372,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
VisibleOnScreenNotifier3DGizmoPlugin();
};
@@ -402,8 +402,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
GPUParticles3DGizmoPlugin();
};
@@ -419,8 +419,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
GPUParticlesCollision3DGizmoPlugin();
};
@@ -436,8 +436,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
ReflectionProbeGizmoPlugin();
};
@@ -453,8 +453,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
DecalGizmoPlugin();
};
@@ -470,8 +470,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
VoxelGIGizmoPlugin();
};
@@ -487,8 +487,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
LightmapGIGizmoPlugin();
};
@@ -504,8 +504,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
LightmapProbeGizmoPlugin();
};
@@ -533,8 +533,8 @@ public:
String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
Variant get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id) const override;
- void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ void set_handle(const EditorNode3DGizmo *p_gizmo, int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(const EditorNode3DGizmo *p_gizmo, int p_id, const Variant &p_restore, bool p_cancel = false) override;
CollisionShape3DGizmoPlugin();
};
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index 5ed8205475..e9a67491aa 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -122,31 +122,28 @@ void ViewportRotationControl::_draw() {
}
void ViewportRotationControl::_draw_axis(const Axis2D &p_axis) {
- bool focused = focused_axis == p_axis.axis;
- bool positive = p_axis.axis < 3;
- bool front = (Math::abs(p_axis.z_axis) <= 0.001 && positive) || p_axis.z_axis > 0.001;
- int direction = p_axis.axis % 3;
+ const bool focused = focused_axis == p_axis.axis;
+ const bool positive = p_axis.axis < 3;
+ const int direction = p_axis.axis % 3;
- Color axis_color = axis_colors[direction];
-
- if (!front) {
- axis_color = axis_color.darkened(0.4);
- }
- Color c = focused ? Color(0.9, 0.9, 0.9) : axis_color;
+ const Color axis_color = axis_colors[direction];
+ const double alpha = focused ? 1.0 : ((p_axis.z_axis + 1.0) / 2.0) * 0.5 + 0.5;
+ const Color c = focused ? Color(0.9, 0.9, 0.9) : Color(axis_color.r, axis_color.g, axis_color.b, alpha);
if (positive) {
- Vector2i center = get_size() / 2.0;
+ // Draw axis lines for the positive axes.
+ const Vector2i center = get_size() / 2.0;
draw_line(center, p_axis.screen_point, c, 1.5 * EDSCALE);
- }
- if (front) {
draw_circle(p_axis.screen_point, AXIS_CIRCLE_RADIUS, c);
- if (positive) {
- String axis_name = direction == 0 ? "X" : (direction == 1 ? "Y" : "Z");
- draw_char(get_theme_font(SNAME("rotation_control"), SNAME("EditorFonts")), p_axis.screen_point + Vector2i(-4, 5) * EDSCALE, axis_name, "", get_theme_font_size(SNAME("rotation_control_size"), SNAME("EditorFonts")), Color(0.0, 0.0, 0.0));
- }
+
+ // Draw the axis letter for the positive axes.
+ const String axis_name = direction == 0 ? "X" : (direction == 1 ? "Y" : "Z");
+ draw_char(get_theme_font(SNAME("rotation_control"), SNAME("EditorFonts")), p_axis.screen_point + Vector2i(-4, 5) * EDSCALE, axis_name, "", get_theme_font_size(SNAME("rotation_control_size"), SNAME("EditorFonts")), Color(0.0, 0.0, 0.0, alpha));
} else {
- draw_circle(p_axis.screen_point, AXIS_CIRCLE_RADIUS * (0.55 + (0.2 * (1.0 + p_axis.z_axis))), c);
+ // Draw an outline around the negative axes.
+ draw_circle(p_axis.screen_point, AXIS_CIRCLE_RADIUS, c);
+ draw_circle(p_axis.screen_point, AXIS_CIRCLE_RADIUS * 0.8, c.darkened(0.4));
}
}
@@ -2460,7 +2457,7 @@ static bool is_shortcut_pressed(const String &p_path) {
return false;
}
const Input &input = *Input::get_singleton();
- int keycode = k->get_keycode();
+ Key keycode = k->get_keycode();
return input.is_key_pressed(keycode);
}
@@ -2738,7 +2735,7 @@ void Node3DEditorViewport::_notification(int p_what) {
if (show_fps) {
cpu_time_history[cpu_time_history_index] = RS::get_singleton()->viewport_get_measured_render_time_cpu(viewport->get_viewport_rid());
cpu_time_history_index = (cpu_time_history_index + 1) % FRAME_TIME_HISTORY;
- float cpu_time = 0.0;
+ double cpu_time = 0.0;
for (int i = 0; i < FRAME_TIME_HISTORY; i++) {
cpu_time += cpu_time_history[i];
}
@@ -2748,7 +2745,7 @@ void Node3DEditorViewport::_notification(int p_what) {
gpu_time_history[gpu_time_history_index] = RS::get_singleton()->viewport_get_measured_render_time_gpu(viewport->get_viewport_rid());
gpu_time_history_index = (gpu_time_history_index + 1) % FRAME_TIME_HISTORY;
- float gpu_time = 0.0;
+ double gpu_time = 0.0;
for (int i = 0; i < FRAME_TIME_HISTORY; i++) {
gpu_time += gpu_time_history[i];
}
@@ -2772,7 +2769,7 @@ void Node3DEditorViewport::_notification(int p_what) {
frame_time_gradient->get_color_at_offset(
Math::range_lerp(gpu_time, 0, 30, 0, 1)));
- const float fps = 1000.0 / gpu_time;
+ const double fps = 1000.0 / gpu_time;
fps_label->set_text(vformat(TTR("FPS: %d"), fps));
// Middle point is at 60 FPS.
fps_label->add_theme_color_override(
@@ -3190,7 +3187,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
int idx = view_menu->get_popup()->get_item_index(VIEW_AUDIO_LISTENER);
bool current = view_menu->get_popup()->is_item_checked(idx);
current = !current;
- viewport->set_as_audio_listener(current);
+ viewport->set_as_audio_listener_3d(current);
view_menu->get_popup()->set_item_checked(idx, current);
} break;
@@ -3637,7 +3634,7 @@ void Node3DEditorViewport::set_state(const Dictionary &p_state) {
bool listener = p_state["listener"];
int idx = view_menu->get_popup()->get_item_index(VIEW_AUDIO_LISTENER);
- viewport->set_as_audio_listener(listener);
+ viewport->set_as_audio_listener_3d(listener);
view_menu->get_popup()->set_item_checked(idx, listener);
}
if (p_state.has("doppler")) {
@@ -3721,7 +3718,7 @@ Dictionary Node3DEditorViewport::get_state() const {
} else if (view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_DISPLAY_SHADELESS))) {
d["display_mode"] = VIEW_DISPLAY_SHADELESS;
}
- d["listener"] = viewport->is_audio_listener();
+ d["listener"] = viewport->is_audio_listener_3d();
d["doppler"] = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_AUDIO_DOPPLER));
d["gizmos"] = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_GIZMOS));
d["information"] = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_INFORMATION));
@@ -4033,7 +4030,7 @@ bool Node3DEditorViewport::can_drop_data_fw(const Point2 &p_point, const Variant
continue;
}
memdelete(instantiated_scene);
- } else if (type == "Mesh" || type == "ArrayMesh" || type == "PrimitiveMesh") {
+ } else if (ClassDB::is_parent_class(type, "Mesh")) {
Ref<Mesh> mesh = ResourceLoader::load(files[i]);
if (!mesh.is_valid()) {
continue;
@@ -4366,7 +4363,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, Edito
if (p_index == 0) {
view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(VIEW_AUDIO_LISTENER), true);
- viewport->set_as_audio_listener(true);
+ viewport->set_as_audio_listener_3d(true);
}
name = "";
@@ -5511,6 +5508,12 @@ void Node3DEditor::_init_indicators() {
Vector<Color> origin_colors;
Vector<Vector3> origin_points;
+ const int count_of_elements = 3 * 6;
+ origin_colors.resize(count_of_elements);
+ origin_points.resize(count_of_elements);
+
+ int x = 0;
+
for (int i = 0; i < 3; i++) {
Vector3 axis;
axis[i] = 1;
@@ -5533,21 +5536,22 @@ void Node3DEditor::_init_indicators() {
grid_enable[i] = false;
grid_visible[i] = false;
- origin_colors.push_back(origin_color);
- origin_colors.push_back(origin_color);
- origin_colors.push_back(origin_color);
- origin_colors.push_back(origin_color);
- origin_colors.push_back(origin_color);
- origin_colors.push_back(origin_color);
+ origin_colors.set(x, origin_color);
+ origin_colors.set(x + 1, origin_color);
+ origin_colors.set(x + 2, origin_color);
+ origin_colors.set(x + 3, origin_color);
+ origin_colors.set(x + 4, origin_color);
+ origin_colors.set(x + 5, origin_color);
// To both allow having a large origin size and avoid jitter
// at small scales, we should segment the line into pieces.
// 3 pieces seems to do the trick, and let's use powers of 2.
- origin_points.push_back(axis * 1048576);
- origin_points.push_back(axis * 1024);
- origin_points.push_back(axis * 1024);
- origin_points.push_back(axis * -1024);
- origin_points.push_back(axis * -1024);
- origin_points.push_back(axis * -1048576);
+ origin_points.set(x, axis * 1048576);
+ origin_points.set(x + 1, axis * 1024);
+ origin_points.set(x + 2, axis * 1024);
+ origin_points.set(x + 3, axis * -1024);
+ origin_points.set(x + 4, axis * -1024);
+ origin_points.set(x + 5, axis * -1048576);
+ x += 6;
}
Ref<Shader> grid_shader = memnew(Shader);
@@ -6124,6 +6128,32 @@ void Node3DEditor::_init_grid() {
grid_mat[c]->set_shader_param("grid_size", grid_fade_size);
grid_mat[c]->set_shader_param("orthogonal", orthogonal);
+ // Cache these so we don't have to re-access memory.
+ Vector<Vector3> &ref_grid = grid_points[c];
+ Vector<Vector3> &ref_grid_normals = grid_normals[c];
+ Vector<Color> &ref_grid_colors = grid_colors[c];
+
+ // Count our elements same as code below it.
+ int expected_size = 0;
+ for (int i = -grid_size; i <= grid_size; i++) {
+ const real_t position_a = center_a + i * small_step_size;
+ const real_t position_b = center_b + i * small_step_size;
+
+ // Don't draw lines over the origin if it's enabled.
+ if (!(origin_enabled && Math::is_zero_approx(position_a))) {
+ expected_size += 2;
+ }
+
+ if (!(origin_enabled && Math::is_zero_approx(position_b))) {
+ expected_size += 2;
+ }
+ }
+
+ int idx = 0;
+ ref_grid.resize(expected_size);
+ ref_grid_normals.resize(expected_size);
+ ref_grid_colors.resize(expected_size);
+
// In each iteration of this loop, draw one line in each direction (so two lines per loop, in each if statement).
for (int i = -grid_size; i <= grid_size; i++) {
Color line_color;
@@ -6146,12 +6176,13 @@ void Node3DEditor::_init_grid() {
line_end[a] = position_a;
line_bgn[b] = bgn_b;
line_end[b] = end_b;
- grid_points[c].push_back(line_bgn);
- grid_points[c].push_back(line_end);
- grid_colors[c].push_back(line_color);
- grid_colors[c].push_back(line_color);
- grid_normals[c].push_back(normal);
- grid_normals[c].push_back(normal);
+ ref_grid.set(idx, line_bgn);
+ ref_grid.set(idx + 1, line_end);
+ ref_grid_colors.set(idx, line_color);
+ ref_grid_colors.set(idx + 1, line_color);
+ ref_grid_normals.set(idx, normal);
+ ref_grid_normals.set(idx + 1, normal);
+ idx += 2;
}
if (!(origin_enabled && Math::is_zero_approx(position_b))) {
@@ -6161,12 +6192,13 @@ void Node3DEditor::_init_grid() {
line_end[b] = position_b;
line_bgn[a] = bgn_a;
line_end[a] = end_a;
- grid_points[c].push_back(line_bgn);
- grid_points[c].push_back(line_end);
- grid_colors[c].push_back(line_color);
- grid_colors[c].push_back(line_color);
- grid_normals[c].push_back(normal);
- grid_normals[c].push_back(normal);
+ ref_grid.set(idx, line_bgn);
+ ref_grid.set(idx + 1, line_end);
+ ref_grid_colors.set(idx, line_color);
+ ref_grid_colors.set(idx + 1, line_color);
+ ref_grid_normals.set(idx, normal);
+ ref_grid_normals.set(idx + 1, normal);
+ idx += 2;
}
}
@@ -6204,8 +6236,22 @@ void Node3DEditor::_finish_grid() {
}
void Node3DEditor::update_grid() {
- _finish_grid();
- _init_grid();
+ const Camera3D::Projection current_projection = viewports[0]->camera->get_projection();
+
+ if (current_projection != grid_camera_last_update_perspective) {
+ grid_init_draw = false; // redraw
+ grid_camera_last_update_perspective = current_projection;
+ }
+
+ // Gets a orthogonal or perspective position correctly (for the grid comparison)
+ const Vector3 camera_position = get_editor_viewport(0)->camera->get_position();
+
+ if (!grid_init_draw || (camera_position - grid_camera_last_update_position).length() >= 10.0f) {
+ _finish_grid();
+ _init_grid();
+ grid_init_draw = true;
+ grid_camera_last_update_position = camera_position;
+ }
}
void Node3DEditor::_selection_changed() {
@@ -6823,7 +6869,7 @@ void Node3DEditor::clear() {
for (uint32_t i = 0; i < VIEWPORTS_COUNT; i++) {
viewports[i]->view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(Node3DEditorViewport::VIEW_AUDIO_LISTENER), i == 0);
- viewports[i]->viewport->set_as_audio_listener(i == 0);
+ viewports[i]->viewport->set_as_audio_listener_3d(i == 0);
}
view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(MENU_VIEW_GRID), true);
diff --git a/editor/plugins/node_3d_editor_plugin.h b/editor/plugins/node_3d_editor_plugin.h
index cb2edbcbc1..094aa5662f 100644
--- a/editor/plugins/node_3d_editor_plugin.h
+++ b/editor/plugins/node_3d_editor_plugin.h
@@ -35,6 +35,7 @@
#include "editor/editor_plugin.h"
#include "editor/editor_scale.h"
#include "editor/plugins/node_3d_editor_gizmos.h"
+#include "scene/3d/camera_3d.h"
#include "scene/3d/light_3d.h"
#include "scene/3d/visual_instance_3d.h"
#include "scene/3d/world_environment.h"
@@ -42,7 +43,6 @@
#include "scene/resources/environment.h"
#include "scene/resources/sky_material.h"
-class Camera3D;
class Node3DEditor;
class Node3DEditorViewport;
class SubViewportContainer;
@@ -166,9 +166,9 @@ public:
};
private:
- float cpu_time_history[FRAME_TIME_HISTORY];
+ double cpu_time_history[FRAME_TIME_HISTORY];
int cpu_time_history_index;
- float gpu_time_history[FRAME_TIME_HISTORY];
+ double gpu_time_history[FRAME_TIME_HISTORY];
int gpu_time_history_index;
int index;
@@ -336,7 +336,7 @@ private:
String last_message;
String message;
- float message_time;
+ double message_time;
void set_message(String p_message, float p_time = 5);
@@ -521,6 +521,9 @@ private:
bool grid_visible[3]; //currently visible
bool grid_enable[3]; //should be always visible if true
bool grid_enabled;
+ bool grid_init_draw = false;
+ Camera3D::Projection grid_camera_last_update_perspective;
+ Vector3 grid_camera_last_update_position = Vector3();
Ref<ArrayMesh> move_gizmo[3], move_plane_gizmo[3], rotate_gizmo[4], scale_gizmo[3], scale_plane_gizmo[3];
Ref<StandardMaterial3D> gizmo_color[3];
@@ -622,7 +625,6 @@ private:
void _menu_gizmo_toggled(int p_option);
void _update_camera_override_button(bool p_game_running);
void _update_camera_override_viewport(Object *p_viewport);
-
HBoxContainer *hbc_menu;
// Used for secondary menu items which are displayed depending on the currently selected node
// (such as MeshInstance's "Mesh" menu).
diff --git a/editor/plugins/path_3d_editor_plugin.cpp b/editor/plugins/path_3d_editor_plugin.cpp
index 63b89aea35..13f7908170 100644
--- a/editor/plugins/path_3d_editor_plugin.cpp
+++ b/editor/plugins/path_3d_editor_plugin.cpp
@@ -88,7 +88,7 @@ Variant Path3DGizmo::get_handle_value(int p_id) const {
return ofs;
}
-void Path3DGizmo::set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point) const {
+void Path3DGizmo::set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point) {
Ref<Curve3D> c = path->get_curve();
if (c.is_null()) {
return;
@@ -157,7 +157,7 @@ void Path3DGizmo::set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point
}
}
-void Path3DGizmo::commit_handle(int p_id, const Variant &p_restore, bool p_cancel) const {
+void Path3DGizmo::commit_handle(int p_id, const Variant &p_restore, bool p_cancel) {
Ref<Curve3D> c = path->get_curve();
if (c.is_null()) {
return;
diff --git a/editor/plugins/path_3d_editor_plugin.h b/editor/plugins/path_3d_editor_plugin.h
index 5902500526..b74d7cc59e 100644
--- a/editor/plugins/path_3d_editor_plugin.h
+++ b/editor/plugins/path_3d_editor_plugin.h
@@ -47,8 +47,8 @@ class Path3DGizmo : public EditorNode3DGizmo {
public:
virtual String get_handle_name(int p_idx) const override;
virtual Variant get_handle_value(int p_id) const override;
- virtual void set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point) const override;
- virtual void commit_handle(int p_id, const Variant &p_restore, bool p_cancel = false) const override;
+ virtual void set_handle(int p_id, Camera3D *p_camera, const Point2 &p_point) override;
+ virtual void commit_handle(int p_id, const Variant &p_restore, bool p_cancel = false) override;
virtual void redraw() override;
Path3DGizmo(Path3D *p_path = nullptr);
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 668a15da37..e6762826dd 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -3409,8 +3409,8 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
ED_SHORTCUT("script_editor/window_sort", TTR("Sort"));
ED_SHORTCUT("script_editor/window_move_up", TTR("Move Up"), KEY_MASK_SHIFT | KEY_MASK_ALT | KEY_UP);
ED_SHORTCUT("script_editor/window_move_down", TTR("Move Down"), KEY_MASK_SHIFT | KEY_MASK_ALT | KEY_DOWN);
- ED_SHORTCUT("script_editor/next_script", TTR("Next script"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_PERIOD); // these should be KEY_GREATER and KEY_LESS but those don't work
- ED_SHORTCUT("script_editor/prev_script", TTR("Previous script"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_COMMA);
+ ED_SHORTCUT("script_editor/next_script", TTR("Next Script"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_PERIOD); // these should be KEY_GREATER and KEY_LESS but those don't work
+ ED_SHORTCUT("script_editor/prev_script", TTR("Previous Script"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_COMMA);
set_process_unhandled_key_input(true);
file_menu = memnew(MenuButton);
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index 5bbe56a800..1d7592d2c3 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -33,6 +33,7 @@
#include "core/math/expression.h"
#include "core/os/keyboard.h"
#include "editor/debugger/editor_debugger_node.h"
+#include "editor/editor_command_palette.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
@@ -240,14 +241,14 @@ void ScriptTextEditor::_warning_clicked(Variant p_line) {
goto_line_centered(p_line.operator int64_t());
} else if (p_line.get_type() == Variant::DICTIONARY) {
Dictionary meta = p_line.operator Dictionary();
- code_editor->get_text_editor()->insert_at("# warning-ignore:" + meta["code"].operator String(), meta["line"].operator int64_t() - 1);
+ code_editor->get_text_editor()->insert_line_at(meta["line"].operator int64_t() - 1, "# warning-ignore:" + meta["code"].operator String());
_validate_script();
}
}
void ScriptTextEditor::_error_clicked(Variant p_line) {
if (p_line.get_type() == Variant::INT) {
- code_editor->get_text_editor()->cursor_set_line(p_line.operator int64_t());
+ code_editor->get_text_editor()->set_caret_line(p_line.operator int64_t());
}
}
@@ -255,14 +256,14 @@ void ScriptTextEditor::reload_text() {
ERR_FAIL_COND(script.is_null());
CodeEdit *te = code_editor->get_text_editor();
- int column = te->cursor_get_column();
- int row = te->cursor_get_line();
+ int column = te->get_caret_column();
+ int row = te->get_caret_line();
int h = te->get_h_scroll();
int v = te->get_v_scroll();
te->set_text(script->get_source_code());
- te->cursor_set_line(row);
- te->cursor_set_column(column);
+ te->set_caret_line(row);
+ te->set_caret_column(column);
te->set_h_scroll(h);
te->set_v_scroll(v);
@@ -280,12 +281,12 @@ void ScriptTextEditor::add_callback(const String &p_function, PackedStringArray
pos = code_editor->get_text_editor()->get_line_count() + 2;
String func = script->get_language()->make_function("", p_function, p_args);
//code=code+func;
- code_editor->get_text_editor()->cursor_set_line(pos + 1);
- code_editor->get_text_editor()->cursor_set_column(1000000); //none shall be that big
- code_editor->get_text_editor()->insert_text_at_cursor("\n\n" + func);
+ code_editor->get_text_editor()->set_caret_line(pos + 1);
+ code_editor->get_text_editor()->set_caret_column(1000000); //none shall be that big
+ code_editor->get_text_editor()->insert_text_at_caret("\n\n" + func);
}
- code_editor->get_text_editor()->cursor_set_line(pos);
- code_editor->get_text_editor()->cursor_set_column(1);
+ code_editor->get_text_editor()->set_caret_line(pos);
+ code_editor->get_text_editor()->set_caret_column(1);
}
bool ScriptTextEditor::show_members_overview() {
@@ -725,7 +726,7 @@ void ScriptTextEditor::_breakpoint_item_pressed(int p_idx) {
_edit_option(breakpoints_menu->get_item_id(p_idx));
} else {
code_editor->goto_line(breakpoints_menu->get_item_metadata(p_idx));
- code_editor->get_text_editor()->call_deferred(SNAME("center_viewport_to_cursor")); //Need to be deferred, because goto uses call_deferred().
+ code_editor->get_text_editor()->call_deferred(SNAME("center_viewport_to_caret")); //Need to be deferred, because goto uses call_deferred().
}
}
@@ -883,7 +884,7 @@ void ScriptTextEditor::update_toggle_scripts_button() {
void ScriptTextEditor::_update_connected_methods() {
CodeEdit *text_edit = code_editor->get_text_editor();
- text_edit->set_gutter_width(connection_gutter, text_edit->get_row_height());
+ text_edit->set_gutter_width(connection_gutter, text_edit->get_line_height());
for (int i = 0; i < text_edit->get_line_count(); i++) {
if (text_edit->get_line_gutter_metadata(i, connection_gutter) == "") {
continue;
@@ -1053,7 +1054,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
code_editor->duplicate_selection();
} break;
case EDIT_TOGGLE_FOLD_LINE: {
- tx->toggle_foldable_line(tx->cursor_get_line());
+ tx->toggle_foldable_line(tx->get_caret_line());
tx->update();
} break;
case EDIT_FOLD_ALL_LINES: {
@@ -1061,7 +1062,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
tx->update();
} break;
case EDIT_UNFOLD_ALL_LINES: {
- tx->unhide_all_lines();
+ tx->unfold_all_lines();
tx->update();
} break;
case EDIT_TOGGLE_COMMENT: {
@@ -1079,7 +1080,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
tx->begin_complex_operation();
int begin, end;
- if (tx->is_selection_active()) {
+ if (tx->has_selection()) {
begin = tx->get_selection_from_line();
end = tx->get_selection_to_line();
// ignore if the cursor is not past the first column
@@ -1121,7 +1122,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
} break;
case EDIT_EVALUATE: {
Expression expression;
- Vector<String> lines = code_editor->get_text_editor()->get_selection_text().split("\n");
+ Vector<String> lines = code_editor->get_text_editor()->get_selected_text().split("\n");
PackedStringArray results;
for (int i = 0; i < lines.size(); i++) {
@@ -1141,7 +1142,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
}
code_editor->get_text_editor()->begin_complex_operation(); //prevents creating a two-step undo
- code_editor->get_text_editor()->insert_text_at_cursor(String("\n").join(results));
+ code_editor->get_text_editor()->insert_text_at_caret(String("\n").join(results));
code_editor->get_text_editor()->end_complex_operation();
} break;
case SEARCH_FIND: {
@@ -1157,14 +1158,14 @@ void ScriptTextEditor::_edit_option(int p_op) {
code_editor->get_find_replace_bar()->popup_replace();
} break;
case SEARCH_IN_FILES: {
- String selected_text = code_editor->get_text_editor()->get_selection_text();
+ String selected_text = code_editor->get_text_editor()->get_selected_text();
// Yep, because it doesn't make sense to instance this dialog for every single script open...
// So this will be delegated to the ScriptEditor.
emit_signal(SNAME("search_in_files_requested"), selected_text);
} break;
case REPLACE_IN_FILES: {
- String selected_text = code_editor->get_text_editor()->get_selection_text();
+ String selected_text = code_editor->get_text_editor()->get_selected_text();
emit_signal(SNAME("replace_in_files_requested"), selected_text);
} break;
@@ -1188,7 +1189,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
code_editor->remove_all_bookmarks();
} break;
case DEBUG_TOGGLE_BREAKPOINT: {
- int line = tx->cursor_get_line();
+ int line = tx->get_caret_line();
bool dobreak = !tx->is_line_breakpointed(line);
tx->set_line_as_breakpoint(line, dobreak);
EditorDebuggerNode::get_singleton()->set_breakpoint(script->get_path(), line + 1, dobreak);
@@ -1209,20 +1210,20 @@ void ScriptTextEditor::_edit_option(int p_op) {
return;
}
- int line = tx->cursor_get_line();
+ int line = tx->get_caret_line();
// wrap around
if (line >= (int)bpoints[bpoints.size() - 1]) {
tx->unfold_line(bpoints[0]);
- tx->cursor_set_line(bpoints[0]);
- tx->center_viewport_to_cursor();
+ tx->set_caret_line(bpoints[0]);
+ tx->center_viewport_to_caret();
} else {
for (int i = 0; i < bpoints.size(); i++) {
int bline = bpoints[i];
if (bline > line) {
tx->unfold_line(bline);
- tx->cursor_set_line(bline);
- tx->center_viewport_to_cursor();
+ tx->set_caret_line(bline);
+ tx->center_viewport_to_caret();
return;
}
}
@@ -1235,19 +1236,19 @@ void ScriptTextEditor::_edit_option(int p_op) {
return;
}
- int line = tx->cursor_get_line();
+ int line = tx->get_caret_line();
// wrap around
if (line <= (int)bpoints[0]) {
tx->unfold_line(bpoints[bpoints.size() - 1]);
- tx->cursor_set_line(bpoints[bpoints.size() - 1]);
- tx->center_viewport_to_cursor();
+ tx->set_caret_line(bpoints[bpoints.size() - 1]);
+ tx->center_viewport_to_caret();
} else {
for (int i = bpoints.size(); i >= 0; i--) {
int bline = bpoints[i];
if (bline < line) {
tx->unfold_line(bline);
- tx->cursor_set_line(bline);
- tx->center_viewport_to_cursor();
+ tx->set_caret_line(bline);
+ tx->center_viewport_to_caret();
return;
}
}
@@ -1255,21 +1256,21 @@ void ScriptTextEditor::_edit_option(int p_op) {
} break;
case HELP_CONTEXTUAL: {
- String text = tx->get_selection_text();
+ String text = tx->get_selected_text();
if (text == "") {
- text = tx->get_word_under_cursor();
+ text = tx->get_word_under_caret();
}
if (text != "") {
emit_signal(SNAME("request_help"), text);
}
} break;
case LOOKUP_SYMBOL: {
- String text = tx->get_word_under_cursor();
+ String text = tx->get_word_under_caret();
if (text == "") {
- text = tx->get_selection_text();
+ text = tx->get_selected_text();
}
if (text != "") {
- _lookup_symbol(text, tx->cursor_get_line(), tx->cursor_get_column());
+ _lookup_symbol(text, tx->get_caret_line(), tx->get_caret_column());
}
} break;
}
@@ -1324,7 +1325,7 @@ void ScriptTextEditor::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_THEME_CHANGED:
case NOTIFICATION_ENTER_TREE: {
- code_editor->get_text_editor()->set_gutter_width(connection_gutter, code_editor->get_text_editor()->get_row_height());
+ code_editor->get_text_editor()->set_gutter_width(connection_gutter, code_editor->get_text_editor()->get_line_height());
} break;
default:
break;
@@ -1389,6 +1390,7 @@ bool ScriptTextEditor::can_drop_data_fw(const Point2 &p_point, const Variant &p_
if (d.has("type") && (String(d["type"]) == "resource" ||
String(d["type"]) == "files" ||
String(d["type"]) == "nodes" ||
+ String(d["type"]) == "obj_property" ||
String(d["type"]) == "files_and_dirs")) {
return true;
}
@@ -1418,11 +1420,14 @@ static Node *_find_script_node(Node *p_edited_scene, Node *p_current_node, const
}
void ScriptTextEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) {
+ const String quote_style = EDITOR_GET("text_editor/completion/use_single_quotes") ? "'" : "\"";
+
Dictionary d = p_data;
CodeEdit *te = code_editor->get_text_editor();
- int row, col;
- te->_get_mouse_pos(p_point, row, col);
+ Point2i pos = te->get_line_column_at_pos(p_point);
+ int row = pos.y;
+ int col = pos.x;
if (d.has("type") && String(d["type"]) == "resource") {
Ref<Resource> res = d["resource"];
@@ -1435,13 +1440,12 @@ void ScriptTextEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data
return;
}
- te->cursor_set_line(row);
- te->cursor_set_column(col);
- te->insert_text_at_cursor(res->get_path());
+ te->set_caret_line(row);
+ te->set_caret_column(col);
+ te->insert_text_at_caret(res->get_path());
}
if (d.has("type") && (String(d["type"]) == "files" || String(d["type"]) == "files_and_dirs")) {
- const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", false) ? "'" : "\"";
Array files = d["files"];
String text_to_drop;
@@ -1458,9 +1462,9 @@ void ScriptTextEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data
}
}
- te->cursor_set_line(row);
- te->cursor_set_column(col);
- te->insert_text_at_cursor(text_to_drop);
+ te->set_caret_line(row);
+ te->set_caret_column(col);
+ te->insert_text_at_caret(text_to_drop);
}
if (d.has("type") && String(d["type"]) == "nodes") {
@@ -1485,12 +1489,20 @@ void ScriptTextEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data
}
String path = sn->get_path_to(node);
- text_to_drop += "\"" + path.c_escape() + "\"";
+ text_to_drop += path.c_escape().quote(quote_style);
}
- te->cursor_set_line(row);
- te->cursor_set_column(col);
- te->insert_text_at_cursor(text_to_drop);
+ te->set_caret_line(row);
+ te->set_caret_column(col);
+ te->insert_text_at_caret(text_to_drop);
+ }
+
+ if (d.has("type") && String(d["type"]) == "obj_property") {
+ const String text_to_drop = String(d["property"]).c_escape().quote(quote_style);
+
+ te->set_caret_line(row);
+ te->set_caret_column(col);
+ te->insert_text_at_caret(text_to_drop);
}
}
@@ -1504,18 +1516,20 @@ void ScriptTextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
if (mb.is_valid() && mb->get_button_index() == MOUSE_BUTTON_RIGHT && mb->is_pressed()) {
local_pos = mb->get_global_position() - tx->get_global_position();
create_menu = true;
- } else if (k.is_valid() && k->get_keycode() == KEY_MENU) {
- local_pos = tx->_get_cursor_pixel_pos();
+ } else if (k.is_valid() && k->is_action("ui_menu", true)) {
+ tx->adjust_viewport_to_caret();
+ local_pos = tx->get_caret_draw_pos();
create_menu = true;
}
if (create_menu) {
- int col, row;
- tx->_get_mouse_pos(local_pos, row, col);
+ Point2i pos = tx->get_line_column_at_pos(local_pos);
+ int row = pos.y;
+ int col = pos.x;
- tx->set_right_click_moves_caret(EditorSettings::get_singleton()->get("text_editor/cursor/right_click_moves_caret"));
- if (tx->is_right_click_moving_caret()) {
- if (tx->is_selection_active()) {
+ tx->set_move_caret_on_right_click_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/right_click_moves_caret"));
+ if (tx->is_move_caret_on_right_click_enabled()) {
+ if (tx->has_selection()) {
int from_line = tx->get_selection_from_line();
int to_line = tx->get_selection_to_line();
int from_column = tx->get_selection_from_column();
@@ -1526,18 +1540,18 @@ void ScriptTextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
tx->deselect();
}
}
- if (!tx->is_selection_active()) {
- tx->cursor_set_line(row, true, false);
- tx->cursor_set_column(col);
+ if (!tx->has_selection()) {
+ tx->set_caret_line(row, false, false);
+ tx->set_caret_column(col);
}
}
String word_at_pos = tx->get_word_at_pos(local_pos);
if (word_at_pos == "") {
- word_at_pos = tx->get_word_under_cursor();
+ word_at_pos = tx->get_word_under_caret();
}
if (word_at_pos == "") {
- word_at_pos = tx->get_selection_text();
+ word_at_pos = tx->get_selected_text();
}
bool has_color = (word_at_pos == "Color");
@@ -1589,7 +1603,7 @@ void ScriptTextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
has_color = false;
}
}
- _make_context_menu(tx->is_selection_active(), has_color, foldable, open_docs, goto_definition, local_pos);
+ _make_context_menu(tx->has_selection(), has_color, foldable, open_docs, goto_definition, local_pos);
}
}
@@ -1924,12 +1938,12 @@ void ScriptTextEditor::register_editor() {
// Leave these at zero, same can be accomplished with tab/shift-tab, including selection.
// The next/previous in history shortcut in this case makes a lot more sense.
- ED_SHORTCUT("script_text_editor/indent_left", TTR("Indent Left"), 0);
- ED_SHORTCUT("script_text_editor/indent_right", TTR("Indent Right"), 0);
+ ED_SHORTCUT("script_text_editor/indent_left", TTR("Indent Left"), KEY_NONE);
+ ED_SHORTCUT("script_text_editor/indent_right", TTR("Indent Right"), KEY_NONE);
ED_SHORTCUT("script_text_editor/toggle_comment", TTR("Toggle Comment"), KEY_MASK_CMD | KEY_K);
ED_SHORTCUT("script_text_editor/toggle_fold_line", TTR("Fold/Unfold Line"), KEY_MASK_ALT | KEY_F);
- ED_SHORTCUT("script_text_editor/fold_all_lines", TTR("Fold All Lines"), 0);
- ED_SHORTCUT("script_text_editor/unfold_all_lines", TTR("Unfold All Lines"), 0);
+ ED_SHORTCUT("script_text_editor/fold_all_lines", TTR("Fold All Lines"), KEY_NONE);
+ ED_SHORTCUT("script_text_editor/unfold_all_lines", TTR("Unfold All Lines"), KEY_NONE);
#ifdef OSX_ENABLED
ED_SHORTCUT("script_text_editor/duplicate_selection", TTR("Duplicate Selection"), KEY_MASK_SHIFT | KEY_MASK_CMD | KEY_C);
#else
@@ -1941,15 +1955,15 @@ void ScriptTextEditor::register_editor() {
ED_SHORTCUT("script_text_editor/convert_indent_to_tabs", TTR("Convert Indent to Tabs"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_I);
ED_SHORTCUT("script_text_editor/auto_indent", TTR("Auto Indent"), KEY_MASK_CMD | KEY_I);
- ED_SHORTCUT("script_text_editor/find", TTR("Find..."), KEY_MASK_CMD | KEY_F);
+ ED_SHORTCUT_AND_COMMAND("script_text_editor/find", TTR("Find..."), KEY_MASK_CMD | KEY_F);
#ifdef OSX_ENABLED
ED_SHORTCUT("script_text_editor/find_next", TTR("Find Next"), KEY_MASK_CMD | KEY_G);
ED_SHORTCUT("script_text_editor/find_previous", TTR("Find Previous"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_G);
- ED_SHORTCUT("script_text_editor/replace", TTR("Replace..."), KEY_MASK_ALT | KEY_MASK_CMD | KEY_F);
+ ED_SHORTCUT_AND_COMMAND("script_text_editor/replace", TTR("Replace..."), KEY_MASK_ALT | KEY_MASK_CMD | KEY_F);
#else
ED_SHORTCUT("script_text_editor/find_next", TTR("Find Next"), KEY_F3);
ED_SHORTCUT("script_text_editor/find_previous", TTR("Find Previous"), KEY_MASK_SHIFT | KEY_F3);
- ED_SHORTCUT("script_text_editor/replace", TTR("Replace..."), KEY_MASK_CMD | KEY_R);
+ ED_SHORTCUT_AND_COMMAND("script_text_editor/replace", TTR("Replace..."), KEY_MASK_CMD | KEY_R);
#endif
ED_SHORTCUT("script_text_editor/find_in_files", TTR("Find in Files..."), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F);
@@ -1964,7 +1978,7 @@ void ScriptTextEditor::register_editor() {
ED_SHORTCUT("script_text_editor/toggle_bookmark", TTR("Toggle Bookmark"), KEY_MASK_CMD | KEY_MASK_ALT | KEY_B);
ED_SHORTCUT("script_text_editor/goto_next_bookmark", TTR("Go to Next Bookmark"), KEY_MASK_CMD | KEY_B);
ED_SHORTCUT("script_text_editor/goto_previous_bookmark", TTR("Go to Previous Bookmark"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_B);
- ED_SHORTCUT("script_text_editor/remove_all_bookmarks", TTR("Remove All Bookmarks"), 0);
+ ED_SHORTCUT("script_text_editor/remove_all_bookmarks", TTR("Remove All Bookmarks"), KEY_NONE);
#ifdef OSX_ENABLED
ED_SHORTCUT("script_text_editor/goto_function", TTR("Go to Function..."), KEY_MASK_CTRL | KEY_MASK_CMD | KEY_J);
diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp
index 95973f9dfd..29436e32b2 100644
--- a/editor/plugins/shader_editor_plugin.cpp
+++ b/editor/plugins/shader_editor_plugin.cpp
@@ -74,14 +74,14 @@ void ShaderTextEditor::reload_text() {
ERR_FAIL_COND(shader.is_null());
CodeEdit *te = get_text_editor();
- int column = te->cursor_get_column();
- int row = te->cursor_get_line();
+ int column = te->get_caret_column();
+ int row = te->get_caret_line();
int h = te->get_h_scroll();
int v = te->get_v_scroll();
te->set_text(shader->get_code());
- te->cursor_set_line(row);
- te->cursor_set_column(column);
+ te->set_caret_line(row);
+ te->set_caret_column(column);
te->set_h_scroll(h);
te->set_v_scroll(v);
@@ -408,7 +408,7 @@ void ShaderEditor::_show_warnings_panel(bool p_show) {
void ShaderEditor::_warning_clicked(Variant p_line) {
if (p_line.get_type() == Variant::INT) {
- shader_editor->get_text_editor()->cursor_set_line(p_line.operator int64_t());
+ shader_editor->get_text_editor()->set_caret_line(p_line.operator int64_t());
}
}
@@ -550,13 +550,15 @@ void ShaderEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
if (mb.is_valid()) {
if (mb->get_button_index() == MOUSE_BUTTON_RIGHT && mb->is_pressed()) {
- int col, row;
CodeEdit *tx = shader_editor->get_text_editor();
- tx->_get_mouse_pos(mb->get_global_position() - tx->get_global_position(), row, col);
- tx->set_right_click_moves_caret(EditorSettings::get_singleton()->get("text_editor/cursor/right_click_moves_caret"));
- if (tx->is_right_click_moving_caret()) {
- if (tx->is_selection_active()) {
+ Point2i pos = tx->get_line_column_at_pos(mb->get_global_position() - tx->get_global_position());
+ int row = pos.y;
+ int col = pos.x;
+ tx->set_move_caret_on_right_click_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/right_click_moves_caret"));
+
+ if (tx->is_move_caret_on_right_click_enabled()) {
+ if (tx->has_selection()) {
int from_line = tx->get_selection_from_line();
int to_line = tx->get_selection_to_line();
int from_column = tx->get_selection_from_column();
@@ -567,19 +569,20 @@ void ShaderEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
tx->deselect();
}
}
- if (!tx->is_selection_active()) {
- tx->cursor_set_line(row, true, false);
- tx->cursor_set_column(col);
+ if (!tx->has_selection()) {
+ tx->set_caret_line(row, true, false);
+ tx->set_caret_column(col);
}
}
- _make_context_menu(tx->is_selection_active(), get_local_mouse_position());
+ _make_context_menu(tx->has_selection(), get_local_mouse_position());
}
}
Ref<InputEventKey> k = ev;
- if (k.is_valid() && k->is_pressed() && k->get_keycode() == KEY_MENU) {
+ if (k.is_valid() && k->is_pressed() && k->is_action("ui_menu", true)) {
CodeEdit *tx = shader_editor->get_text_editor();
- _make_context_menu(tx->is_selection_active(), (get_global_transform().inverse() * tx->get_global_transform()).xform(tx->_get_cursor_pixel_pos()));
+ tx->adjust_viewport_to_caret();
+ _make_context_menu(tx->has_selection(), (get_global_transform().inverse() * tx->get_global_transform()).xform(tx->get_caret_draw_pos()));
context_menu->grab_focus();
}
}
diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp
index 4202d8b611..0bb0bfde6f 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_3d_editor_plugin.cpp
@@ -386,7 +386,7 @@ PhysicalBone3D *Skeleton3DEditor::create_physical_bone(int bone_id, int bone_chi
const real_t radius(half_height * 0.2);
CapsuleShape3D *bone_shape_capsule = memnew(CapsuleShape3D);
- bone_shape_capsule->set_height((half_height - radius) * 2);
+ bone_shape_capsule->set_height(half_height * 2);
bone_shape_capsule->set_radius(radius);
CollisionShape3D *bone_shape = memnew(CollisionShape3D);
@@ -397,7 +397,7 @@ PhysicalBone3D *Skeleton3DEditor::create_physical_bone(int bone_id, int bone_chi
bone_shape->set_transform(capsule_transform);
Transform3D body_transform;
- body_transform.set_look_at(Vector3(0, 0, 0), child_rest.origin);
+ body_transform.basis = Basis::looking_at(child_rest.origin);
body_transform.origin = body_transform.basis.xform(Vector3(0, 0, -half_height));
Transform3D joint_transform;
diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp
index faf287b9bd..cfccf90499 100644
--- a/editor/plugins/text_editor.cpp
+++ b/editor/plugins/text_editor.cpp
@@ -132,14 +132,14 @@ void TextEditor::reload_text() {
ERR_FAIL_COND(text_file.is_null());
CodeEdit *te = code_editor->get_text_editor();
- int column = te->cursor_get_column();
- int row = te->cursor_get_line();
+ int column = te->get_caret_column();
+ int row = te->get_caret_line();
int h = te->get_h_scroll();
int v = te->get_v_scroll();
te->set_text(text_file->get_text());
- te->cursor_set_line(row);
- te->cursor_set_column(column);
+ te->set_caret_line(row);
+ te->set_caret_column(column);
te->set_h_scroll(h);
te->set_v_scroll(v);
@@ -332,7 +332,7 @@ void TextEditor::_edit_option(int p_op) {
code_editor->duplicate_selection();
} break;
case EDIT_TOGGLE_FOLD_LINE: {
- tx->toggle_foldable_line(tx->cursor_get_line());
+ tx->toggle_foldable_line(tx->get_caret_line());
tx->update();
} break;
case EDIT_FOLD_ALL_LINES: {
@@ -340,7 +340,7 @@ void TextEditor::_edit_option(int p_op) {
tx->update();
} break;
case EDIT_UNFOLD_ALL_LINES: {
- tx->unhide_all_lines();
+ tx->unfold_all_lines();
tx->update();
} break;
case EDIT_TRIM_TRAILING_WHITESAPCE: {
@@ -374,14 +374,14 @@ void TextEditor::_edit_option(int p_op) {
code_editor->get_find_replace_bar()->popup_replace();
} break;
case SEARCH_IN_FILES: {
- String selected_text = code_editor->get_text_editor()->get_selection_text();
+ String selected_text = code_editor->get_text_editor()->get_selected_text();
// Yep, because it doesn't make sense to instance this dialog for every single script open...
// So this will be delegated to the ScriptEditor.
emit_signal(SNAME("search_in_files_requested"), selected_text);
} break;
case REPLACE_IN_FILES: {
- String selected_text = code_editor->get_text_editor()->get_selection_text();
+ String selected_text = code_editor->get_text_editor()->get_selected_text();
emit_signal(SNAME("replace_in_files_requested"), selected_text);
} break;
@@ -427,16 +427,18 @@ void TextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
if (mb.is_valid()) {
if (mb->get_button_index() == MOUSE_BUTTON_RIGHT) {
- int col, row;
CodeEdit *tx = code_editor->get_text_editor();
- tx->_get_mouse_pos(mb->get_global_position() - tx->get_global_position(), row, col);
- tx->set_right_click_moves_caret(EditorSettings::get_singleton()->get("text_editor/cursor/right_click_moves_caret"));
+ Point2i pos = tx->get_line_column_at_pos(mb->get_global_position() - tx->get_global_position());
+ int row = pos.y;
+ int col = pos.x;
+
+ tx->set_move_caret_on_right_click_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/right_click_moves_caret"));
bool can_fold = tx->can_fold_line(row);
bool is_folded = tx->is_line_folded(row);
- if (tx->is_right_click_moving_caret()) {
- if (tx->is_selection_active()) {
+ if (tx->is_move_caret_on_right_click_enabled()) {
+ if (tx->has_selection()) {
int from_line = tx->get_selection_from_line();
int to_line = tx->get_selection_to_line();
int from_column = tx->get_selection_from_column();
@@ -447,23 +449,24 @@ void TextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
tx->deselect();
}
}
- if (!tx->is_selection_active()) {
- tx->cursor_set_line(row, true, false);
- tx->cursor_set_column(col);
+ if (!tx->has_selection()) {
+ tx->set_caret_line(row, true, false);
+ tx->set_caret_column(col);
}
}
if (!mb->is_pressed()) {
- _make_context_menu(tx->is_selection_active(), can_fold, is_folded, get_local_mouse_position());
+ _make_context_menu(tx->has_selection(), can_fold, is_folded, get_local_mouse_position());
}
}
}
Ref<InputEventKey> k = ev;
- if (k.is_valid() && k->is_pressed() && k->get_keycode() == KEY_MENU) {
+ if (k.is_valid() && k->is_pressed() && k->is_action("ui_menu", true)) {
CodeEdit *tx = code_editor->get_text_editor();
- int line = tx->cursor_get_line();
- _make_context_menu(tx->is_selection_active(), tx->can_fold_line(line), tx->is_line_folded(line), (get_global_transform().inverse() * tx->get_global_transform()).xform(tx->_get_cursor_pixel_pos()));
+ int line = tx->get_caret_line();
+ tx->adjust_viewport_to_caret();
+ _make_context_menu(tx->has_selection(), tx->can_fold_line(line), tx->is_line_folded(line), (get_global_transform().inverse() * tx->get_global_transform()).xform(tx->get_caret_draw_pos()));
context_menu->grab_focus();
}
}
diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp
index b277f2ab42..1a6eb7b63b 100644
--- a/editor/plugins/texture_region_editor_plugin.cpp
+++ b/editor/plugins/texture_region_editor_plugin.cpp
@@ -330,7 +330,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
for (const Rect2 &E : autoslice_cache) {
if (E.has_point(point)) {
rect = E;
- if (Input::get_singleton()->is_key_pressed(KEY_CTRL) && !(Input::get_singleton()->is_key_pressed(KEY_SHIFT | KEY_ALT))) {
+ if (Input::get_singleton()->is_key_pressed(KEY_CTRL) && !(Input::get_singleton()->is_key_pressed(Key(KEY_SHIFT | KEY_ALT)))) {
Rect2 r;
if (node_sprite) {
r = node_sprite->get_region_rect();
diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp
index 7ea3deedb9..165a381407 100644
--- a/editor/plugins/theme_editor_plugin.cpp
+++ b/editor/plugins/theme_editor_plugin.cpp
@@ -1721,6 +1721,8 @@ void ThemeItemEditorDialog::_edit_theme_item_gui_input(const Ref<InputEvent> &p_
edit_theme_item_dialog->hide();
edit_theme_item_dialog->set_input_as_handled();
} break;
+ default:
+ break;
}
}
}
diff --git a/editor/plugins/version_control_editor_plugin.cpp b/editor/plugins/version_control_editor_plugin.cpp
index a9a36427db..aaa29bcb7a 100644
--- a/editor/plugins/version_control_editor_plugin.cpp
+++ b/editor/plugins/version_control_editor_plugin.cpp
@@ -484,7 +484,7 @@ VersionControlEditorPlugin::VersionControlEditorPlugin() {
commit_message->set_h_grow_direction(Control::GrowDirection::GROW_DIRECTION_BEGIN);
commit_message->set_v_grow_direction(Control::GrowDirection::GROW_DIRECTION_END);
commit_message->set_custom_minimum_size(Size2(200, 100));
- commit_message->set_wrap_enabled(true);
+ commit_message->set_line_wrapping_mode(TextEdit::LineWrappingMode::LINE_WRAPPING_BOUNDARY);
commit_message->connect("text_changed", callable_mp(this, &VersionControlEditorPlugin::_update_commit_button));
commit_message->connect("gui_input", callable_mp(this, &VersionControlEditorPlugin::_commit_message_gui_input));
commit_box_vbc->add_child(commit_message);
diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp
index 452ad126b3..1fbf5eb0e6 100644
--- a/editor/plugins/visual_shader_editor_plugin.cpp
+++ b/editor/plugins/visual_shader_editor_plugin.cpp
@@ -110,7 +110,6 @@ void VisualShaderGraphPlugin::_bind_methods() {
ClassDB::bind_method("set_expression", &VisualShaderGraphPlugin::set_expression);
ClassDB::bind_method("update_curve", &VisualShaderGraphPlugin::update_curve);
ClassDB::bind_method("update_curve_xyz", &VisualShaderGraphPlugin::update_curve_xyz);
- ClassDB::bind_method("update_constant", &VisualShaderGraphPlugin::update_constant);
}
void VisualShaderGraphPlugin::register_shader(VisualShader *p_shader) {
@@ -237,18 +236,6 @@ int VisualShaderGraphPlugin::get_constant_index(float p_constant) const {
return 0;
}
-void VisualShaderGraphPlugin::update_constant(VisualShader::Type p_type, int p_node_id) {
- if (p_type != visual_shader->get_shader_type() || !links.has(p_node_id) || !links[p_node_id].const_op) {
- return;
- }
- VisualShaderNodeFloatConstant *float_const = Object::cast_to<VisualShaderNodeFloatConstant>(links[p_node_id].visual_node);
- if (!float_const) {
- return;
- }
- links[p_node_id].const_op->select(get_constant_index(float_const->get_constant()));
- links[p_node_id].graph_node->set_size(Size2(-1, -1));
-}
-
void VisualShaderGraphPlugin::set_expression(VisualShader::Type p_type, int p_node_id, const String &p_expression) {
if (p_type != visual_shader->get_shader_type() || !links.has(p_node_id) || !links[p_node_id].expression_edit) {
return;
@@ -267,10 +254,6 @@ void VisualShaderGraphPlugin::register_default_input_button(int p_node_id, int p
links[p_node_id].input_ports.insert(p_port_id, { p_button });
}
-void VisualShaderGraphPlugin::register_constant_option_btn(int p_node_id, OptionButton *p_button) {
- links[p_node_id].const_op = p_button;
-}
-
void VisualShaderGraphPlugin::register_expression_edit(int p_node_id, CodeEdit *p_expression_edit) {
links[p_node_id].expression_edit = p_expression_edit;
}
@@ -322,7 +305,7 @@ void VisualShaderGraphPlugin::make_dirty(bool p_enabled) {
}
void VisualShaderGraphPlugin::register_link(VisualShader::Type p_type, int p_id, VisualShaderNode *p_visual_node, GraphNode *p_graph_node) {
- links.insert(p_id, { p_type, p_visual_node, p_graph_node, p_visual_node->get_output_port_for_preview() != -1, -1, Map<int, InputPort>(), Map<int, Port>(), nullptr, nullptr, nullptr, nullptr, { nullptr, nullptr, nullptr } });
+ links.insert(p_id, { p_type, p_visual_node, p_graph_node, p_visual_node->get_output_port_for_preview() != -1, -1, Map<int, InputPort>(), Map<int, Port>(), nullptr, nullptr, nullptr, { nullptr, nullptr, nullptr } });
}
void VisualShaderGraphPlugin::register_output_port(int p_node_id, int p_port, TextureButton *p_button) {
@@ -408,10 +391,14 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
node->connect("dragged", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_node_dragged), varray(p_id));
Control *custom_editor = nullptr;
- int port_offset = 0;
+ int port_offset = 1;
+
+ Control *content_offset = memnew(Control);
+ content_offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE));
+ node->add_child(content_offset);
if (is_group) {
- port_offset += 2;
+ port_offset += 1;
}
if (is_resizable) {
@@ -448,7 +435,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
if (vsnode->get_input_port_count() == 0 && vsnode->get_output_port_count() == 1 && vsnode->get_output_port_name(0) == "") {
//shortcut
VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0);
- node->set_slot(0, false, VisualShaderNode::PORT_TYPE_SCALAR, Color(), true, port_right, type_color[port_right]);
+ node->set_slot(1, false, VisualShaderNode::PORT_TYPE_SCALAR, Color(), true, port_right, type_color[port_right]);
if (!vsnode->is_use_prop_slots()) {
return;
}
@@ -494,23 +481,6 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
custom_editor = hbox;
}
- Ref<VisualShaderNodeFloatConstant> float_const = vsnode;
- if (float_const.is_valid()) {
- HBoxContainer *hbox = memnew(HBoxContainer);
-
- hbox->add_child(custom_editor);
- OptionButton *btn = memnew(OptionButton);
- hbox->add_child(btn);
- register_constant_option_btn(p_id, btn);
- btn->add_item("");
- for (int i = 0; i < MAX_FLOAT_CONST_DEFS; i++) {
- btn->add_item(float_constant_defs[i].name);
- }
- btn->select(get_constant_index(float_const->get_constant()));
- btn->connect("item_selected", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_float_constant_selected), varray(p_id));
- custom_editor = hbox;
- }
-
if (custom_editor && !vsnode->is_use_prop_slots() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == "")) {
//will be embedded in first port
} else if (custom_editor) {
@@ -582,22 +552,26 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
if (is_curve) {
VisualShaderNode::PortType port_left = vsnode->get_input_port_type(0);
VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0);
- node->set_slot(0, true, port_left, type_color[port_left], true, port_right, type_color[port_right]);
+ node->set_slot(1, true, port_left, type_color[port_left], true, port_right, type_color[port_right]);
VisualShaderEditor::get_singleton()->call_deferred(SNAME("_set_node_size"), (int)p_type, p_id, size);
}
if (vsnode->is_use_prop_slots()) {
+ String error = vsnode->get_warning(visual_shader->get_mode(), p_type);
+ if (error != String()) {
+ Label *error_label = memnew(Label);
+ error_label->add_theme_color_override("font_color", VisualShaderEditor::get_singleton()->get_theme_color(SNAME("error_color"), SNAME("Editor")));
+ error_label->set_text(error);
+ node->add_child(error_label);
+ }
+
return;
}
custom_editor = nullptr;
}
if (is_group) {
- offset = memnew(Control);
- offset->set_custom_minimum_size(Size2(0, 6 * EDSCALE));
- node->add_child(offset);
-
if (group_node->is_editable()) {
HBoxContainer *hb2 = memnew(HBoxContainer);
@@ -1007,6 +981,7 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
const Dictionary vs_version = visual_shader->get_engine_version();
if (!vs_version.has_all(components)) {
visual_shader->update_engine_version(engine_version);
+ print_line(vformat(TTR("The shader (\"%s\") has been updated to correspond Godot %s.%s version."), visual_shader->get_path(), engine_version["major"], engine_version["minor"]));
} else {
for (int i = 0; i < components.size(); i++) {
if (vs_version[components[i]] != engine_version[components[i]]) {
@@ -2028,6 +2003,8 @@ void VisualShaderEditor::_uniform_line_edit_changed(const String &p_text, int p_
undo_redo->add_undo_method(node.ptr(), "set_uniform_name", node->get_uniform_name());
undo_redo->add_do_method(graph_plugin.ptr(), "set_uniform_name", type, p_node_id, validated_name);
undo_redo->add_undo_method(graph_plugin.ptr(), "set_uniform_name", type, p_node_id, node->get_uniform_name());
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node_deferred", type, p_node_id);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node_deferred", type, p_node_id);
undo_redo->add_do_method(this, "_update_uniforms", true);
undo_redo->add_undo_method(this, "_update_uniforms", true);
@@ -2171,6 +2148,16 @@ void VisualShaderEditor::_setup_node(VisualShaderNode *p_node, int p_op_idx) {
}
}
+ // TRANSFORM_OP
+ {
+ VisualShaderNodeTransformOp *matOp = Object::cast_to<VisualShaderNodeTransformOp>(p_node);
+
+ if (matOp) {
+ matOp->set_operator((VisualShaderNodeTransformOp::Operator)p_op_idx);
+ return;
+ }
+ }
+
// TRANSFORM_FUNC
{
VisualShaderNodeTransformFunc *matFunc = Object::cast_to<VisualShaderNodeTransformFunc>(p_node);
@@ -2360,6 +2347,7 @@ void VisualShaderEditor::_add_node(int p_idx, int p_op_idx, String p_resource_pa
position += graph->get_size() * 0.5;
position /= EDSCALE;
}
+ position /= graph->get_zoom();
saved_node_pos_dirty = false;
int id_to_use = visual_shader->get_valid_node_id(type);
@@ -2932,6 +2920,7 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
selected_constants.clear();
selected_uniforms.clear();
selected_comment = -1;
+ selected_float_constant = -1;
List<int> to_change;
for (int i = 0; i < graph->get_child_count(); i++) {
@@ -2951,6 +2940,10 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
if (constant_node != nullptr) {
selected_constants.insert(id);
}
+ VisualShaderNodeFloatConstant *float_constant_node = Object::cast_to<VisualShaderNodeFloatConstant>(node.ptr());
+ if (float_constant_node != nullptr) {
+ selected_float_constant = id;
+ }
VisualShaderNodeUniform *uniform_node = Object::cast_to<VisualShaderNodeUniform>(node.ptr());
if (uniform_node != nullptr && uniform_node->is_convertible_to_constant()) {
selected_uniforms.insert(id);
@@ -2961,6 +2954,7 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
if (to_change.size() > 1) {
selected_comment = -1;
+ selected_float_constant = -1;
}
if (to_change.is_empty() && copy_nodes_buffer.is_empty()) {
@@ -2975,6 +2969,10 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
if (temp != -1) {
popup_menu->remove_item(temp);
}
+ temp = popup_menu->get_item_index(NodeMenuOptions::FLOAT_CONSTANTS);
+ if (temp != -1) {
+ popup_menu->remove_item(temp);
+ }
temp = popup_menu->get_item_index(NodeMenuOptions::CONVERT_CONSTANTS_TO_UNIFORMS);
if (temp != -1) {
popup_menu->remove_item(temp);
@@ -2996,14 +2994,23 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
popup_menu->remove_item(temp);
}
- if (selected_comment != -1) {
+ if (selected_constants.size() > 0 || selected_uniforms.size() > 0) {
popup_menu->add_separator("", NodeMenuOptions::SEPARATOR2);
- popup_menu->add_item(TTR("Set Comment Title"), NodeMenuOptions::SET_COMMENT_TITLE);
- popup_menu->add_item(TTR("Set Comment Description"), NodeMenuOptions::SET_COMMENT_DESCRIPTION);
- }
- if (selected_constants.size() > 0 || selected_uniforms.size() > 0) {
- popup_menu->add_separator("", NodeMenuOptions::SEPARATOR3);
+ if (selected_float_constant != -1) {
+ popup_menu->add_submenu_item(TTR("Float Constants"), "FloatConstants", int(NodeMenuOptions::FLOAT_CONSTANTS));
+
+ if (!constants_submenu) {
+ constants_submenu = memnew(PopupMenu);
+ constants_submenu->set_name("FloatConstants");
+
+ for (int i = 0; i < MAX_FLOAT_CONST_DEFS; i++) {
+ constants_submenu->add_item(float_constant_defs[i].name, i);
+ }
+ popup_menu->add_child(constants_submenu);
+ constants_submenu->connect("index_pressed", callable_mp(this, &VisualShaderEditor::_float_constant_selected));
+ }
+ }
if (selected_constants.size() > 0) {
popup_menu->add_item(TTR("Convert Constant(s) to Uniform(s)"), NodeMenuOptions::CONVERT_CONSTANTS_TO_UNIFORMS);
@@ -3014,6 +3021,12 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
}
}
+ if (selected_comment != -1) {
+ popup_menu->add_separator("", NodeMenuOptions::SEPARATOR3);
+ popup_menu->add_item(TTR("Set Comment Title"), NodeMenuOptions::SET_COMMENT_TITLE);
+ popup_menu->add_item(TTR("Set Comment Description"), NodeMenuOptions::SET_COMMENT_DESCRIPTION);
+ }
+
menu_point = graph->get_local_mouse_position();
Point2 gpos = Input::get_singleton()->get_mouse_position();
popup_menu->set_position(gpos);
@@ -3483,27 +3496,20 @@ void VisualShaderEditor::_uniform_select_item(Ref<VisualShaderNodeUniformRef> p_
undo_redo->commit_action();
}
-void VisualShaderEditor::_float_constant_selected(int p_index, int p_node) {
- if (p_index == 0) {
- graph_plugin->update_node_size(p_node);
- return;
- }
-
- --p_index;
-
- ERR_FAIL_INDEX(p_index, MAX_FLOAT_CONST_DEFS);
+void VisualShaderEditor::_float_constant_selected(int p_which) {
+ ERR_FAIL_INDEX(p_which, MAX_FLOAT_CONST_DEFS);
VisualShader::Type type = get_current_shader_type();
- Ref<VisualShaderNodeFloatConstant> node = visual_shader->get_node(type, p_node);
- if (!node.is_valid()) {
- return;
+ Ref<VisualShaderNodeFloatConstant> node = visual_shader->get_node(type, selected_float_constant);
+ ERR_FAIL_COND(!node.is_valid());
+
+ if (Math::is_equal_approx(node->get_constant(), float_constant_defs[p_which].value)) {
+ return; // same
}
- undo_redo->create_action(TTR("Set constant"));
- undo_redo->add_do_method(node.ptr(), "set_constant", float_constant_defs[p_index].value);
+ undo_redo->create_action(vformat(TTR("Set Constant: %s"), float_constant_defs[p_which].name));
+ undo_redo->add_do_method(node.ptr(), "set_constant", float_constant_defs[p_which].value);
undo_redo->add_undo_method(node.ptr(), "set_constant", node->get_constant());
- undo_redo->add_do_method(graph_plugin.ptr(), "update_constant", type, p_node);
- undo_redo->add_undo_method(graph_plugin.ptr(), "update_constant", type, p_node);
undo_redo->commit_action();
}
@@ -3966,7 +3972,7 @@ VisualShaderEditor::VisualShaderEditor() {
preview_text->set_v_size_flags(Control::SIZE_EXPAND_FILL);
preview_text->set_syntax_highlighter(syntax_highlighter);
preview_text->set_draw_line_numbers(true);
- preview_text->set_readonly(true);
+ preview_text->set_editable(false);
error_panel = memnew(PanelContainer);
preview_vbox->add_child(error_panel);
@@ -4448,6 +4454,7 @@ VisualShaderEditor::VisualShaderEditor() {
// TRANSFORM
add_options.push_back(AddOption("TransformFunc", "Transform", "Common", "VisualShaderNodeTransformFunc", TTR("Transform function."), -1, VisualShaderNode::PORT_TYPE_TRANSFORM));
+ add_options.push_back(AddOption("TransformOp", "Transform", "Common", "VisualShaderNodeTransformOp", TTR("Transform operator."), -1, VisualShaderNode::PORT_TYPE_TRANSFORM));
add_options.push_back(AddOption("OuterProduct", "Transform", "Composition", "VisualShaderNodeOuterProduct", TTR("Calculate the outer product of a pair of vectors.\n\nOuterProduct 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'."), -1, VisualShaderNode::PORT_TYPE_TRANSFORM));
add_options.push_back(AddOption("TransformCompose", "Transform", "Composition", "VisualShaderNodeTransformCompose", TTR("Composes transform from four vectors."), -1, VisualShaderNode::PORT_TYPE_TRANSFORM));
@@ -4458,7 +4465,11 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("Inverse", "Transform", "Functions", "VisualShaderNodeTransformFunc", TTR("Calculates the inverse of a transform."), VisualShaderNodeTransformFunc::FUNC_INVERSE, VisualShaderNode::PORT_TYPE_TRANSFORM));
add_options.push_back(AddOption("Transpose", "Transform", "Functions", "VisualShaderNodeTransformFunc", TTR("Calculates the transpose of a transform."), VisualShaderNodeTransformFunc::FUNC_TRANSPOSE, VisualShaderNode::PORT_TYPE_TRANSFORM));
- add_options.push_back(AddOption("TransformMult", "Transform", "Operators", "VisualShaderNodeTransformMult", TTR("Multiplies transform by transform."), -1, VisualShaderNode::PORT_TYPE_TRANSFORM));
+ add_options.push_back(AddOption("Add", "Transform", "Operators", "VisualShaderNodeTransformOp", TTR("Sums two transforms."), VisualShaderNodeTransformOp::OP_ADD, VisualShaderNode::PORT_TYPE_TRANSFORM));
+ add_options.push_back(AddOption("Divide", "Transform", "Operators", "VisualShaderNodeTransformOp", TTR("Divides two transforms."), VisualShaderNodeTransformOp::OP_A_DIV_B, VisualShaderNode::PORT_TYPE_TRANSFORM));
+ add_options.push_back(AddOption("Multiply", "Transform", "Operators", "VisualShaderNodeTransformOp", TTR("Multiplies two transforms."), VisualShaderNodeTransformOp::OP_AxB, VisualShaderNode::PORT_TYPE_TRANSFORM));
+ add_options.push_back(AddOption("MultiplyComp", "Transform", "Operators", "VisualShaderNodeTransformOp", TTR("Performs per-component multiplication of two transforms."), VisualShaderNodeTransformOp::OP_AxB_COMP, VisualShaderNode::PORT_TYPE_TRANSFORM));
+ add_options.push_back(AddOption("Subtract", "Transform", "Operators", "VisualShaderNodeTransformOp", TTR("Subtracts two transforms."), VisualShaderNodeTransformOp::OP_A_MINUS_B, VisualShaderNode::PORT_TYPE_TRANSFORM));
add_options.push_back(AddOption("TransformVectorMult", "Transform", "Operators", "VisualShaderNodeTransformVecMult", TTR("Multiplies vector by transform."), -1, VisualShaderNode::PORT_TYPE_VECTOR));
add_options.push_back(AddOption("TransformConstant", "Transform", "Variables", "VisualShaderNodeTransformConstant", TTR("Transform constant."), -1, VisualShaderNode::PORT_TYPE_TRANSFORM));
@@ -4741,9 +4752,6 @@ public:
if (p_property != "constant") {
undo_redo->add_do_method(VisualShaderEditor::get_singleton()->get_graph_plugin(), "update_node_deferred", shader_type, node_id);
undo_redo->add_undo_method(VisualShaderEditor::get_singleton()->get_graph_plugin(), "update_node_deferred", shader_type, node_id);
- } else {
- undo_redo->add_do_method(VisualShaderEditor::get_singleton()->get_graph_plugin(), "update_constant", shader_type, node_id);
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton()->get_graph_plugin(), "update_constant", shader_type, node_id);
}
undo_redo->commit_action();
diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h
index f53726edb9..87bab16a45 100644
--- a/editor/plugins/visual_shader_editor_plugin.h
+++ b/editor/plugins/visual_shader_editor_plugin.h
@@ -73,7 +73,6 @@ private:
Map<int, Port> output_ports;
VBoxContainer *preview_box = nullptr;
LineEdit *uniform_name = nullptr;
- OptionButton *const_op = nullptr;
CodeEdit *expression_edit = nullptr;
CurveEditor *curve_editors[3] = { nullptr, nullptr, nullptr };
};
@@ -95,7 +94,6 @@ public:
void register_output_port(int p_id, int p_port, TextureButton *p_button);
void register_uniform_name(int p_id, LineEdit *p_uniform_name);
void register_default_input_button(int p_node_id, int p_port_id, Button *p_button);
- void register_constant_option_btn(int p_node_id, OptionButton *p_button);
void register_expression_edit(int p_node_id, CodeEdit *p_expression_edit);
void register_curve_editor(int p_node_id, int p_index, CurveEditor *p_curve_editor);
void clear_links();
@@ -118,7 +116,6 @@ public:
void set_uniform_name(VisualShader::Type p_type, int p_node_id, const String &p_name);
void update_curve(int p_node_id);
void update_curve_xyz(int p_node_id);
- void update_constant(VisualShader::Type p_type, int p_node_id);
void set_expression(VisualShader::Type p_type, int p_node_id, const String &p_expression);
int get_constant_index(float p_constant) const;
void update_node_size(int p_node_id);
@@ -164,6 +161,7 @@ class VisualShaderEditor : public VBoxContainer {
ConfirmationDialog *members_dialog;
PopupMenu *popup_menu;
+ PopupMenu *constants_submenu = nullptr;
MenuButton *tools;
PopupPanel *comment_title_change_popup = nullptr;
@@ -214,6 +212,7 @@ class VisualShaderEditor : public VBoxContainer {
DELETE,
DUPLICATE,
SEPARATOR2, // ignore
+ FLOAT_CONSTANTS,
CONVERT_CONSTANTS_TO_UNIFORMS,
CONVERT_UNIFORMS_TO_CONSTANTS,
SEPARATOR3, // ignore
@@ -347,6 +346,7 @@ class VisualShaderEditor : public VBoxContainer {
Set<int> selected_constants;
Set<int> selected_uniforms;
int selected_comment = -1;
+ int selected_float_constant = -1;
void _convert_constants_to_uniforms(bool p_vice_versa);
void _replace_node(VisualShader::Type p_type_id, int p_node_id, const StringName &p_from, const StringName &p_to);
@@ -396,7 +396,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 _float_constant_selected(int p_index, int p_node);
+ void _float_constant_selected(int p_which);
VisualShader::Type get_current_shader_type() const;
diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp
index a1deae92a4..1272d064a0 100644
--- a/editor/property_selector.cpp
+++ b/editor/property_selector.cpp
@@ -67,6 +67,8 @@ void PropertySelector::_sbox_input(const Ref<InputEvent> &p_ie) {
current->select(0);
} break;
+ default:
+ break;
}
}
}
@@ -351,51 +353,64 @@ void PropertySelector::_item_selected() {
String class_type;
if (type != Variant::NIL) {
class_type = Variant::get_type_name(type);
-
- } else {
+ } else if (base_type != String()) {
class_type = base_type;
+ } else if (instance) {
+ class_type = instance->get_class();
}
DocTools *dd = EditorHelp::get_doc_data();
String text;
-
if (properties) {
- String at_class = class_type;
-
- while (at_class != String()) {
- Map<String, DocData::ClassDoc>::Element *E = dd->class_list.find(at_class);
+ while (class_type != String()) {
+ Map<String, DocData::ClassDoc>::Element *E = dd->class_list.find(class_type);
if (E) {
for (int i = 0; i < E->get().properties.size(); i++) {
if (E->get().properties[i].name == name) {
text = DTR(E->get().properties[i].description);
+ break;
}
}
}
- at_class = ClassDB::get_parent_class(at_class);
+ if (text != String()) {
+ break;
+ }
+
+ // The property may be from a parent class, keep looking.
+ class_type = ClassDB::get_parent_class(class_type);
}
} else {
- String at_class = class_type;
-
- while (at_class != String()) {
- Map<String, DocData::ClassDoc>::Element *E = dd->class_list.find(at_class);
+ while (class_type != String()) {
+ Map<String, DocData::ClassDoc>::Element *E = dd->class_list.find(class_type);
if (E) {
for (int i = 0; i < E->get().methods.size(); i++) {
if (E->get().methods[i].name == name) {
text = DTR(E->get().methods[i].description);
+ break;
}
}
}
- at_class = ClassDB::get_parent_class(at_class);
+ if (text != String()) {
+ break;
+ }
+
+ // The method may be from a parent class, keep looking.
+ class_type = ClassDB::get_parent_class(class_type);
}
}
- if (text == String()) {
- return;
+ if (text != String()) {
+ // Display both property name and description, since the help bit may be displayed
+ // far away from the location (especially if the dialog was resized to be taller).
+ help_bit->set_text(vformat("[b]%s[/b]: %s", name, text));
+ help_bit->get_rich_text()->set_self_modulate(Color(1, 1, 1, 1));
+ } else {
+ // Use nested `vformat()` as translators shouldn't interfere with BBCode tags.
+ help_bit->set_text(vformat(TTR("No description available for %s."), vformat("[b]%s[/b]", name)));
+ help_bit->get_rich_text()->set_self_modulate(Color(1, 1, 1, 0.5));
}
-
- help_bit->set_text(text);
}
void PropertySelector::_hide_requested() {
diff --git a/editor/quick_open.cpp b/editor/quick_open.cpp
index ed94f859e2..f8af3e8f36 100644
--- a/editor/quick_open.cpp
+++ b/editor/quick_open.cpp
@@ -190,6 +190,8 @@ void EditorQuickOpen::_sbox_input(const Ref<InputEvent> &p_ie) {
current->set_as_cursor(0);
}
} break;
+ default:
+ break;
}
}
}
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index c4d47c7594..0b228c2695 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -45,6 +45,7 @@
#include "editor/plugins/canvas_item_editor_plugin.h"
#include "editor/plugins/node_3d_editor_plugin.h"
#include "editor/plugins/script_editor_plugin.h"
+#include "editor/shader_create_dialog.h"
#include "scene/main/window.h"
#include "scene/resources/packed_scene.h"
#include "servers/display_server.h"
@@ -1142,6 +1143,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
editor_selection->clear();
editor_selection->add_node(new_node);
+ scene_tree->get_scene_tree()->grab_focus();
} break;
default: {
@@ -1939,12 +1941,31 @@ void SceneTreeDock::_script_created(Ref<Script> p_script) {
_update_script_button();
}
+void SceneTreeDock::_shader_created(Ref<Shader> p_shader) {
+ if (selected_shader_material.is_null()) {
+ return;
+ }
+
+ Ref<Shader> existing = selected_shader_material->get_shader();
+
+ editor_data->get_undo_redo().create_action(TTR("Set Shader"));
+ editor_data->get_undo_redo().add_do_method(selected_shader_material.ptr(), "set_shader", p_shader);
+ editor_data->get_undo_redo().add_undo_method(selected_shader_material.ptr(), "set_shader", existing);
+ editor_data->get_undo_redo().commit_action();
+}
+
void SceneTreeDock::_script_creation_closed() {
script_create_dialog->disconnect("script_created", callable_mp(this, &SceneTreeDock::_script_created));
script_create_dialog->disconnect("confirmed", callable_mp(this, &SceneTreeDock::_script_creation_closed));
script_create_dialog->disconnect("cancelled", callable_mp(this, &SceneTreeDock::_script_creation_closed));
}
+void SceneTreeDock::_shader_creation_closed() {
+ shader_create_dialog->disconnect("shader_created", callable_mp(this, &SceneTreeDock::_shader_created));
+ shader_create_dialog->disconnect("confirmed", callable_mp(this, &SceneTreeDock::_shader_creation_closed));
+ shader_create_dialog->disconnect("cancelled", callable_mp(this, &SceneTreeDock::_shader_creation_closed));
+}
+
void SceneTreeDock::_toggle_editable_children_from_selection() {
List<Node *> selection = editor_selection->get_selected_node_list();
List<Node *>::Element *e = selection.front();
@@ -2259,7 +2280,7 @@ void SceneTreeDock::_create() {
_do_reparent(last_created, -1, nodes, true);
}
- scene_tree->get_scene_tree()->call_deferred(SNAME("grab_focus"));
+ scene_tree->get_scene_tree()->grab_focus();
}
void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties, bool p_remove_old) {
@@ -2896,6 +2917,42 @@ void SceneTreeDock::open_script_dialog(Node *p_for_node, bool p_extend) {
}
}
+void SceneTreeDock::attach_shader_to_selected() {
+ if (selected_shader_material.is_null()) {
+ return;
+ }
+
+ String path = selected_shader_material->get_path();
+ if (path == "") {
+ String root_path;
+ if (editor_data->get_edited_scene_root()) {
+ root_path = editor_data->get_edited_scene_root()->get_filename();
+ }
+ String shader_name;
+ if (selected_shader_material->get_name().is_empty()) {
+ shader_name = root_path.get_file();
+ } else {
+ shader_name = selected_shader_material->get_name();
+ }
+ if (root_path == "") {
+ path = String("res://").plus_file(shader_name);
+ } else {
+ path = root_path.get_base_dir().plus_file(shader_name);
+ }
+ }
+
+ shader_create_dialog->connect("shader_created", callable_mp(this, &SceneTreeDock::_shader_created));
+ shader_create_dialog->connect("confirmed", callable_mp(this, &SceneTreeDock::_shader_creation_closed));
+ shader_create_dialog->connect("cancelled", callable_mp(this, &SceneTreeDock::_shader_creation_closed));
+ shader_create_dialog->config(path);
+ shader_create_dialog->popup_centered();
+}
+
+void SceneTreeDock::open_shader_dialog(Ref<ShaderMaterial> &p_for_material) {
+ selected_shader_material = p_for_material;
+ attach_shader_to_selected();
+}
+
void SceneTreeDock::open_add_child_dialog() {
create_dialog->set_base_type("CanvasItem");
_tool_selected(TOOL_NEW, true);
@@ -3267,6 +3324,9 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel
script_create_dialog->set_inheritance_base_type("Node");
add_child(script_create_dialog);
+ shader_create_dialog = memnew(ShaderCreateDialog);
+ add_child(shader_create_dialog);
+
reparent_dialog = memnew(ReparentDialog);
add_child(reparent_dialog);
reparent_dialog->connect("reparent", callable_mp(this, &SceneTreeDock::_node_reparent));
diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h
index 4952122cb7..ccdc0a3786 100644
--- a/editor/scene_tree_dock.h
+++ b/editor/scene_tree_dock.h
@@ -49,6 +49,7 @@
#include "scene_tree_editor.h"
class EditorNode;
+class ShaderCreateDialog;
class SceneTreeDock : public VBoxContainer {
GDCLASS(SceneTreeDock, VBoxContainer);
@@ -138,6 +139,7 @@ class SceneTreeDock : public VBoxContainer {
HashMap<String, Map<RES, RES>> clipboard_resource_remap;
ScriptCreateDialog *script_create_dialog;
+ ShaderCreateDialog *shader_create_dialog;
AcceptDialog *accept;
ConfirmationDialog *delete_dialog;
ConfirmationDialog *editable_instance_remove_dialog;
@@ -166,6 +168,8 @@ class SceneTreeDock : public VBoxContainer {
VBoxContainer *create_root_dialog;
String selected_favorite_root;
+ Ref<ShaderMaterial> selected_shader_material;
+
void _add_children_to_popup(Object *p_obj, int p_depth);
void _node_reparent(NodePath p_path, bool p_keep_global_xform);
@@ -192,7 +196,9 @@ class SceneTreeDock : public VBoxContainer {
void _node_selected();
void _node_renamed();
void _script_created(Ref<Script> p_script);
+ void _shader_created(Ref<Shader> p_shader);
void _script_creation_closed();
+ void _shader_creation_closed();
void _delete_confirm(bool p_cut = false);
@@ -288,6 +294,9 @@ public:
void attach_script_to_selected(bool p_extend);
void open_script_dialog(Node *p_for_node, bool p_extend);
+ void attach_shader_to_selected();
+ void open_shader_dialog(Ref<ShaderMaterial> &p_for_material);
+
void open_add_child_dialog();
void open_instance_child_dialog();
diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp
index e7ba3daccd..5c77c9f124 100644
--- a/editor/settings_config_dialog.cpp
+++ b/editor/settings_config_dialog.cpp
@@ -208,8 +208,8 @@ void EditorSettingsDialog::_event_config_confirmed() {
Ref<Shortcut> current_sc = EditorSettings::get_singleton()->get_shortcut(shortcut_being_edited);
undo_redo->create_action(TTR("Change Shortcut") + " '" + shortcut_being_edited + "'");
- undo_redo->add_do_method(current_sc.ptr(), "set_shortcut", k);
- undo_redo->add_undo_method(current_sc.ptr(), "set_shortcut", current_sc->get_event());
+ undo_redo->add_do_method(current_sc.ptr(), "set_event", k);
+ undo_redo->add_undo_method(current_sc.ptr(), "set_event", current_sc->get_event());
undo_redo->add_do_method(this, "_update_shortcuts");
undo_redo->add_undo_method(this, "_update_shortcuts");
undo_redo->add_do_method(this, "_settings_changed");
@@ -453,8 +453,8 @@ void EditorSettingsDialog::_shortcut_button_pressed(Object *p_item, int p_column
}
undo_redo->create_action(TTR("Erase Shortcut"));
- undo_redo->add_do_method(sc.ptr(), "set_shortcut", Ref<InputEvent>());
- undo_redo->add_undo_method(sc.ptr(), "set_shortcut", sc->get_event());
+ undo_redo->add_do_method(sc.ptr(), "set_event", Ref<InputEvent>());
+ undo_redo->add_undo_method(sc.ptr(), "set_event", sc->get_event());
undo_redo->add_do_method(this, "_update_shortcuts");
undo_redo->add_undo_method(this, "_update_shortcuts");
undo_redo->add_do_method(this, "_settings_changed");
@@ -469,8 +469,8 @@ void EditorSettingsDialog::_shortcut_button_pressed(Object *p_item, int p_column
Ref<InputEvent> original = sc->get_meta("original");
undo_redo->create_action(TTR("Restore Shortcut"));
- undo_redo->add_do_method(sc.ptr(), "set_shortcut", original);
- undo_redo->add_undo_method(sc.ptr(), "set_shortcut", sc->get_event());
+ undo_redo->add_do_method(sc.ptr(), "set_event", original);
+ undo_redo->add_undo_method(sc.ptr(), "set_event", sc->get_event());
undo_redo->add_do_method(this, "_update_shortcuts");
undo_redo->add_undo_method(this, "_update_shortcuts");
undo_redo->add_do_method(this, "_settings_changed");
diff --git a/editor/shader_create_dialog.cpp b/editor/shader_create_dialog.cpp
new file mode 100644
index 0000000000..7e6f154fab
--- /dev/null
+++ b/editor/shader_create_dialog.cpp
@@ -0,0 +1,627 @@
+/*************************************************************************/
+/* shader_create_dialog.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2021 Godot Engine contributors (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 "shader_create_dialog.h"
+#include "editor/editor_scale.h"
+#include "scene/resources/visual_shader.h"
+#include "servers/rendering/shader_types.h"
+
+void ShaderCreateDialog::_notification(int p_what) {
+ switch (p_what) {
+ case NOTIFICATION_ENTER_TREE: {
+ _update_theme();
+
+ String last_lang = EditorSettings::get_singleton()->get_project_metadata("shader_setup", "last_selected_language", "");
+ if (!last_lang.is_empty()) {
+ for (int i = 0; i < language_menu->get_item_count(); i++) {
+ if (language_menu->get_item_text(i) == last_lang) {
+ language_menu->select(i);
+ current_language = i;
+ break;
+ }
+ }
+ } else {
+ language_menu->select(default_language);
+ }
+
+ current_mode = EditorSettings::get_singleton()->get_project_metadata("shader_setup", "last_selected_mode", 0);
+ mode_menu->select(current_mode);
+ } break;
+ case NOTIFICATION_THEME_CHANGED: {
+ _update_theme();
+ } break;
+ }
+}
+
+void ShaderCreateDialog::_update_theme() {
+ Ref<Texture2D> shader_icon = gc->get_theme_icon(SNAME("Shader"), SNAME("EditorIcons"));
+ if (shader_icon.is_valid()) {
+ language_menu->set_item_icon(0, shader_icon);
+ }
+
+ Ref<Texture2D> visual_shader_icon = gc->get_theme_icon(SNAME("VisualShader"), SNAME("EditorIcons"));
+ if (visual_shader_icon.is_valid()) {
+ language_menu->set_item_icon(1, visual_shader_icon);
+ }
+
+ path_button->set_icon(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")));
+ status_panel->add_theme_style_override("panel", get_theme_stylebox(SNAME("bg"), SNAME("Tree")));
+}
+
+void ShaderCreateDialog::_update_language_info() {
+ language_data.clear();
+
+ for (int i = 0; i < SHADER_TYPE_MAX; i++) {
+ ShaderTypeData data;
+ if (i == int(SHADER_TYPE_TEXT)) {
+ data.use_templates = true;
+ data.extensions.push_back("gdshader");
+ data.default_extension = "gdshader";
+ } else {
+ data.default_extension = "tres";
+ }
+ data.extensions.push_back("res");
+ data.extensions.push_back("tres");
+ language_data.push_back(data);
+ }
+}
+
+void ShaderCreateDialog::_path_hbox_sorted() {
+ if (is_visible()) {
+ int filename_start_pos = initial_base_path.rfind("/") + 1;
+ int filename_end_pos = initial_base_path.length();
+
+ if (!is_built_in) {
+ file_path->select(filename_start_pos, filename_end_pos);
+ }
+
+ file_path->set_caret_column(file_path->get_text().length());
+ file_path->set_caret_column(filename_start_pos);
+
+ file_path->grab_focus();
+ }
+}
+
+void ShaderCreateDialog::_mode_changed(int p_mode) {
+ current_mode = p_mode;
+ EditorSettings::get_singleton()->set_project_metadata("shader_setup", "last_selected_mode", p_mode);
+}
+
+void ShaderCreateDialog::_template_changed(int p_template) {
+ current_template = p_template;
+ EditorSettings::get_singleton()->set_project_metadata("shader_setup", "last_selected_template", p_template);
+}
+
+void ShaderCreateDialog::ok_pressed() {
+ if (is_new_shader_created) {
+ _create_new();
+ } else {
+ _load_exist();
+ }
+
+ is_new_shader_created = true;
+ _update_dialog();
+}
+
+void ShaderCreateDialog::_create_new() {
+ RES shader;
+
+ if (language_menu->get_selected() == int(SHADER_TYPE_TEXT)) {
+ Ref<Shader> text_shader;
+ text_shader.instantiate();
+ shader = text_shader;
+
+ StringBuilder code;
+ code += vformat("shader_type %s;\n", mode_menu->get_text().replace(" ", "").camelcase_to_underscore());
+
+ if (current_template == 0) { // Default template.
+ code += "\n";
+ switch (current_mode) {
+ case Shader::MODE_SPATIAL:
+ code += "void fragment() {\n";
+ code += "\t// Place fragment code here.\n";
+ code += "}\n";
+ break;
+ case Shader::MODE_CANVAS_ITEM:
+ code += "void fragment() {\n";
+ code += "\t// Place fragment code here.\n";
+ code += "}\n";
+ break;
+ case Shader::MODE_PARTICLES:
+ code += "void start() {\n";
+ code += "\t// Place start code here.\n";
+ code += "}\n";
+ code += "\n";
+ code += "void process() {\n";
+ code += "\t// Place process code here.\n";
+ code += "}\n";
+ break;
+ case Shader::MODE_SKY:
+ code += "void sky() {\n";
+ code += "\t// Place sky code here.\n";
+ code += "}\n";
+ break;
+ }
+ }
+ text_shader->set_code(code.as_string());
+ } else {
+ Ref<VisualShader> visual_shader;
+ visual_shader.instantiate();
+ shader = visual_shader;
+ visual_shader->set_engine_version(Engine::get_singleton()->get_version_info());
+ visual_shader->set_mode(Shader::Mode(current_mode));
+ }
+
+ if (!is_built_in) {
+ String lpath = ProjectSettings::get_singleton()->localize_path(file_path->get_text());
+ shader->set_path(lpath);
+ Error err = ResourceSaver::save(lpath, shader, ResourceSaver::FLAG_CHANGE_PATH);
+ if (err != OK) {
+ alert->set_text(TTR("Error - Could not create shader in filesystem."));
+ alert->popup_centered();
+ return;
+ }
+ }
+
+ emit_signal("shader_created", shader);
+ hide();
+}
+
+void ShaderCreateDialog::_load_exist() {
+ String path = file_path->get_text();
+ RES p_shader = ResourceLoader::load(path, "Shader");
+ if (p_shader.is_null()) {
+ alert->set_text(vformat(TTR("Error loading shader from %s"), path));
+ alert->popup_centered();
+ return;
+ }
+
+ emit_signal("shader_created", p_shader);
+ hide();
+}
+
+void ShaderCreateDialog::_language_changed(int p_language) {
+ current_language = p_language;
+ ShaderTypeData data = language_data[p_language];
+
+ String selected_ext = "." + data.default_extension;
+ String path = file_path->get_text();
+ String extension = "";
+
+ if (path != "") {
+ if (path.find(".") != -1) {
+ extension = path.get_extension();
+ }
+ if (extension.length() == 0) {
+ path += selected_ext;
+ } else {
+ path = path.get_basename() + selected_ext;
+ }
+ } else {
+ path = "shader" + selected_ext;
+ }
+ _path_changed(path);
+ file_path->set_text(path);
+
+ template_menu->set_disabled(!data.use_templates);
+ template_menu->clear();
+
+ if (data.use_templates) {
+ int last_template = EditorSettings::get_singleton()->get_project_metadata("shader_setup", "last_selected_template", 0);
+
+ template_menu->add_item(TTR("Default"));
+ template_menu->add_item(TTR("Empty"));
+
+ template_menu->select(last_template);
+ current_template = last_template;
+ } else {
+ template_menu->add_item(TTR("N/A"));
+ }
+
+ EditorSettings::get_singleton()->set_project_metadata("shader_setup", "last_selected_language", language_menu->get_item_text(language_menu->get_selected()));
+ _update_dialog();
+}
+
+void ShaderCreateDialog::_built_in_toggled(bool p_enabled) {
+ is_built_in = p_enabled;
+ if (p_enabled) {
+ is_new_shader_created = true;
+ } else {
+ _path_changed(file_path->get_text());
+ }
+ _update_dialog();
+}
+
+void ShaderCreateDialog::_browse_path() {
+ file_browse->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE);
+ file_browse->set_title(TTR("Open Shader / Choose Location"));
+ file_browse->get_ok_button()->set_text(TTR("Open"));
+
+ file_browse->set_disable_overwrite_warning(true);
+ file_browse->clear_filters();
+
+ List<String> extensions = language_data[language_menu->get_selected()].extensions;
+
+ for (const String &E : extensions) {
+ file_browse->add_filter("*." + E);
+ }
+
+ file_browse->set_current_path(file_path->get_text());
+ file_browse->popup_file_dialog();
+}
+
+void ShaderCreateDialog::_file_selected(const String &p_file) {
+ String p = ProjectSettings::get_singleton()->localize_path(p_file);
+ file_path->set_text(p);
+ _path_changed(p);
+
+ String filename = p.get_file().get_basename();
+ int select_start = p.rfind(filename);
+ file_path->select(select_start, select_start + filename.length());
+ file_path->set_caret_column(select_start + filename.length());
+ file_path->grab_focus();
+}
+
+void ShaderCreateDialog::_path_changed(const String &p_path) {
+ if (is_built_in) {
+ return;
+ }
+
+ is_path_valid = false;
+ is_new_shader_created = true;
+
+ String path_error = _validate_path(p_path);
+ if (path_error != "") {
+ _msg_path_valid(false, path_error);
+ _update_dialog();
+ return;
+ }
+
+ DirAccessRef f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ String p = ProjectSettings::get_singleton()->localize_path(p_path.strip_edges());
+ if (f->file_exists(p)) {
+ is_new_shader_created = false;
+ _msg_path_valid(true, TTR("File exists, it will be reused."));
+ }
+
+ is_path_valid = true;
+ _update_dialog();
+}
+
+void ShaderCreateDialog::_path_submitted(const String &p_path) {
+ ok_pressed();
+}
+
+void ShaderCreateDialog::config(const String &p_base_path, bool p_built_in_enabled, bool p_load_enabled) {
+ if (p_base_path != "") {
+ initial_base_path = p_base_path.get_basename();
+ file_path->set_text(initial_base_path + "." + language_data[language_menu->get_selected()].default_extension);
+ current_language = language_menu->get_selected();
+ } else {
+ initial_base_path = "";
+ file_path->set_text("");
+ }
+ file_path->deselect();
+
+ built_in_enabled = p_built_in_enabled;
+ load_enabled = p_load_enabled;
+
+ _language_changed(current_language);
+ _path_changed(file_path->get_text());
+}
+
+String ShaderCreateDialog::_validate_path(const String &p_path) {
+ String p = p_path.strip_edges();
+
+ if (p == "") {
+ return TTR("Path is empty.");
+ }
+ if (p.get_file().get_basename() == "") {
+ return TTR("Filename is empty.");
+ }
+
+ p = ProjectSettings::get_singleton()->localize_path(p);
+ if (!p.begins_with("res://")) {
+ return TTR("Path is not local.");
+ }
+
+ DirAccessRef d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ if (d->change_dir(p.get_base_dir()) != OK) {
+ return TTR("Invalid base path.");
+ }
+
+ DirAccessRef f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ if (f->dir_exists(p)) {
+ return TTR("A directory with the same name exists.");
+ }
+
+ String extension = p.get_extension();
+ Set<String> extensions;
+
+ for (int i = 0; i < SHADER_TYPE_MAX; i++) {
+ for (const String &ext : language_data[i].extensions) {
+ if (!extensions.has(ext)) {
+ extensions.insert(ext);
+ }
+ }
+ }
+
+ ShaderTypeData data = language_data[language_menu->get_selected()];
+
+ bool found = false;
+ bool match = false;
+
+ for (const String &ext : extensions) {
+ if (ext.nocasecmp_to(extension) == 0) {
+ found = true;
+ for (const String &lang_ext : language_data[current_language].extensions) {
+ if (lang_ext.nocasecmp_to(extension) == 0) {
+ match = true;
+ break;
+ }
+ }
+ break;
+ }
+ }
+
+ if (!found) {
+ return TTR("Invalid extension.");
+ }
+ if (!match) {
+ return TTR("Wrong extension chosen.");
+ }
+
+ return "";
+}
+
+void ShaderCreateDialog::_msg_script_valid(bool valid, const String &p_msg) {
+ error_label->set_text("- " + p_msg);
+ if (valid) {
+ error_label->add_theme_color_override("font_color", gc->get_theme_color("success_color", "Editor"));
+ } else {
+ error_label->add_theme_color_override("font_color", gc->get_theme_color("error_color", "Editor"));
+ }
+}
+
+void ShaderCreateDialog::_msg_path_valid(bool valid, const String &p_msg) {
+ path_error_label->set_text("- " + p_msg);
+ if (valid) {
+ path_error_label->add_theme_color_override("font_color", gc->get_theme_color("success_color", "Editor"));
+ } else {
+ path_error_label->add_theme_color_override("font_color", gc->get_theme_color("error_color", "Editor"));
+ }
+}
+
+void ShaderCreateDialog::_update_dialog() {
+ bool shader_ok = true;
+
+ if (!is_built_in && !is_path_valid) {
+ _msg_script_valid(false, TTR("Invalid path."));
+ shader_ok = false;
+ }
+ if (shader_ok) {
+ _msg_script_valid(true, TTR("Shader path/name is valid."));
+ }
+ if (!built_in_enabled) {
+ internal->set_pressed(false);
+ }
+
+ if (is_built_in) {
+ file_path->set_editable(false);
+ path_button->set_disabled(true);
+ re_check_path = true;
+ } else {
+ file_path->set_editable(true);
+ path_button->set_disabled(false);
+ if (re_check_path) {
+ re_check_path = false;
+ _path_changed(file_path->get_text());
+ }
+ }
+
+ internal->set_disabled(!built_in_enabled);
+
+ builtin_warning_label->set_visible(is_built_in);
+
+ if (is_built_in) {
+ get_ok_button()->set_text(TTR("Create"));
+ _msg_path_valid(true, TTR("Built-in shader (into scene file)."));
+ } else if (is_new_shader_created) {
+ get_ok_button()->set_text(TTR("Create"));
+ if (is_path_valid) {
+ _msg_path_valid(true, TTR("Will create a new shader file."));
+ }
+ } else if (load_enabled) {
+ get_ok_button()->set_text(TTR("Load"));
+ if (is_path_valid) {
+ _msg_path_valid(true, TTR("Will load an existing shader file."));
+ }
+ } else {
+ get_ok_button()->set_text(TTR("Create"));
+ _msg_path_valid(false, TTR("Shader file already exists."));
+
+ shader_ok = false;
+ }
+
+ get_ok_button()->set_disabled(!shader_ok);
+
+ Callable entered_call = callable_mp(this, &ShaderCreateDialog::_path_submitted);
+ if (shader_ok) {
+ if (!file_path->is_connected("text_submitted", entered_call)) {
+ file_path->connect("text_submitted", entered_call);
+ }
+ } else if (file_path->is_connected("text_submitted", entered_call)) {
+ file_path->disconnect("text_submitted", entered_call);
+ }
+}
+
+void ShaderCreateDialog::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("config", "path", "built_in_enabled", "load_enabled"), &ShaderCreateDialog::config, DEFVAL(true), DEFVAL(true));
+
+ ADD_SIGNAL(MethodInfo("shader_created", PropertyInfo(Variant::OBJECT, "shader", PROPERTY_HINT_RESOURCE_TYPE, "Shader")));
+}
+
+ShaderCreateDialog::ShaderCreateDialog() {
+ _update_language_info();
+
+ // Main Controls.
+
+ gc = memnew(GridContainer);
+ gc->set_columns(2);
+
+ // Error Fields.
+
+ VBoxContainer *vb = memnew(VBoxContainer);
+
+ error_label = memnew(Label);
+ vb->add_child(error_label);
+
+ path_error_label = memnew(Label);
+ vb->add_child(path_error_label);
+
+ builtin_warning_label = memnew(Label);
+ builtin_warning_label->set_text(
+ TTR("Note: Built-in shaders can't be edited using an external editor."));
+ vb->add_child(builtin_warning_label);
+ builtin_warning_label->set_autowrap_mode(Label::AUTOWRAP_WORD_SMART);
+ builtin_warning_label->hide();
+
+ status_panel = memnew(PanelContainer);
+ status_panel->set_h_size_flags(Control::SIZE_FILL);
+ status_panel->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ status_panel->add_child(vb);
+
+ // Spacing.
+
+ Control *spacing = memnew(Control);
+ spacing->set_custom_minimum_size(Size2(0, 10 * EDSCALE));
+
+ vb = memnew(VBoxContainer);
+ vb->add_child(gc);
+ vb->add_child(spacing);
+ vb->add_child(status_panel);
+ add_child(vb);
+
+ // Language.
+
+ language_menu = memnew(OptionButton);
+ language_menu->set_custom_minimum_size(Size2(250, 0) * EDSCALE);
+ language_menu->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ gc->add_child(memnew(Label(TTR("Language:"))));
+ gc->add_child(language_menu);
+
+ for (int i = 0; i < SHADER_TYPE_MAX; i++) {
+ String language;
+ bool invalid = false;
+ switch (i) {
+ case SHADER_TYPE_TEXT:
+ language = "Shader";
+ default_language = i;
+ break;
+ case SHADER_TYPE_VISUAL:
+ language = "VisualShader";
+ break;
+ case SHADER_TYPE_MAX:
+ invalid = true;
+ break;
+ default:
+ invalid = true;
+ break;
+ }
+ if (invalid) {
+ continue;
+ }
+ language_menu->add_item(language);
+ }
+ if (default_language >= 0) {
+ language_menu->select(default_language);
+ }
+ current_language = default_language;
+ language_menu->connect("item_selected", callable_mp(this, &ShaderCreateDialog::_language_changed));
+
+ // Modes.
+
+ mode_menu = memnew(OptionButton);
+ for (const String &type_name : ShaderTypes::get_singleton()->get_types_list()) {
+ mode_menu->add_item(type_name.capitalize());
+ }
+ gc->add_child(memnew(Label(TTR("Mode:"))));
+ gc->add_child(mode_menu);
+ mode_menu->connect("item_selected", callable_mp(this, &ShaderCreateDialog::_mode_changed));
+
+ // Templates.
+
+ template_menu = memnew(OptionButton);
+ gc->add_child(memnew(Label(TTR("Template:"))));
+ gc->add_child(template_menu);
+ template_menu->connect("item_selected", callable_mp(this, &ShaderCreateDialog::_template_changed));
+
+ // Built-in Shader.
+
+ internal = memnew(CheckBox);
+ internal->set_text(TTR("On"));
+ internal->connect("toggled", callable_mp(this, &ShaderCreateDialog::_built_in_toggled));
+ gc->add_child(memnew(Label(TTR("Built-in Shader:"))));
+ gc->add_child(internal);
+
+ // Path.
+
+ HBoxContainer *hb = memnew(HBoxContainer);
+ hb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ hb->connect("sort_children", callable_mp(this, &ShaderCreateDialog::_path_hbox_sorted));
+ file_path = memnew(LineEdit);
+ file_path->connect("text_changed", callable_mp(this, &ShaderCreateDialog::_path_changed));
+ file_path->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ hb->add_child(file_path);
+ path_button = memnew(Button);
+ path_button->connect("pressed", callable_mp(this, &ShaderCreateDialog::_browse_path));
+ hb->add_child(path_button);
+ gc->add_child(memnew(Label(TTR("Path:"))));
+ gc->add_child(hb);
+
+ // Dialog Setup.
+
+ file_browse = memnew(EditorFileDialog);
+ file_browse->connect("file_selected", callable_mp(this, &ShaderCreateDialog::_file_selected));
+ file_browse->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE);
+ add_child(file_browse);
+
+ alert = memnew(AcceptDialog);
+ alert->get_label()->set_autowrap_mode(Label::AUTOWRAP_WORD_SMART);
+ alert->get_label()->set_align(Label::ALIGN_CENTER);
+ alert->get_label()->set_valign(Label::VALIGN_CENTER);
+ alert->get_label()->set_custom_minimum_size(Size2(325, 60) * EDSCALE);
+ add_child(alert);
+
+ get_ok_button()->set_text(TTR("Create"));
+ set_hide_on_ok(false);
+
+ set_title(TTR("Create Shader"));
+}
diff --git a/editor/shader_create_dialog.h b/editor/shader_create_dialog.h
new file mode 100644
index 0000000000..6962fa3d8d
--- /dev/null
+++ b/editor/shader_create_dialog.h
@@ -0,0 +1,115 @@
+/*************************************************************************/
+/* shader_create_dialog.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2021 Godot Engine contributors (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 SHADER_CREATE_DIALOG_H
+#define SHADER_CREATE_DIALOG_H
+
+#include "editor/editor_file_dialog.h"
+#include "editor/editor_settings.h"
+#include "scene/gui/check_box.h"
+#include "scene/gui/dialogs.h"
+#include "scene/gui/grid_container.h"
+#include "scene/gui/line_edit.h"
+#include "scene/gui/option_button.h"
+#include "scene/gui/panel_container.h"
+
+class ShaderCreateDialog : public ConfirmationDialog {
+ GDCLASS(ShaderCreateDialog, ConfirmationDialog);
+
+ enum ShaderType {
+ SHADER_TYPE_TEXT,
+ SHADER_TYPE_VISUAL,
+ SHADER_TYPE_MAX,
+ };
+
+ struct ShaderTypeData {
+ List<String> extensions;
+ String default_extension;
+ bool use_templates = false;
+ };
+
+ List<ShaderTypeData> language_data;
+
+ GridContainer *gc = nullptr;
+ Label *error_label = nullptr;
+ Label *path_error_label = nullptr;
+ Label *builtin_warning_label = nullptr;
+ PanelContainer *status_panel = nullptr;
+ OptionButton *language_menu = nullptr;
+ OptionButton *mode_menu = nullptr;
+ OptionButton *template_menu = nullptr;
+ CheckBox *internal = nullptr;
+ LineEdit *file_path = nullptr;
+ Button *path_button = nullptr;
+ EditorFileDialog *file_browse = nullptr;
+ AcceptDialog *alert = nullptr;
+
+ String initial_base_path;
+ bool is_new_shader_created = true;
+ bool is_path_valid = false;
+ bool is_built_in = false;
+ bool built_in_enabled = true;
+ bool load_enabled = false;
+ bool re_check_path = false;
+ int current_language = -1;
+ int default_language = -1;
+ int current_mode = 0;
+ int current_template = 0;
+
+ virtual void _update_language_info();
+
+ void _path_hbox_sorted();
+ void _path_changed(const String &p_path = String());
+ void _path_submitted(const String &p_path = String());
+ void _language_changed(int p_language = 0);
+ void _built_in_toggled(bool p_enabled);
+ void _template_changed(int p_template = 0);
+ void _mode_changed(int p_mode = 0);
+ void _browse_path();
+ void _file_selected(const String &p_file);
+ String _validate_path(const String &p_path);
+ virtual void ok_pressed() override;
+ void _create_new();
+ void _load_exist();
+ void _msg_script_valid(bool valid, const String &p_msg = String());
+ void _msg_path_valid(bool valid, const String &p_msg = String());
+ void _update_dialog();
+
+protected:
+ void _update_theme();
+ void _notification(int p_what);
+ static void _bind_methods();
+
+public:
+ void config(const String &p_base_path, bool p_built_in_enabled = true, bool p_load_enabled = true);
+ ShaderCreateDialog();
+};
+
+#endif
diff --git a/editor/translations/af.po b/editor/translations/af.po
index 18ad28af62..70e016ee65 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -353,6 +353,7 @@ msgstr "Verander Anim Herspeel"
msgid "Remove Anim Track"
msgstr "Verwyder Anim Baan"
+#. 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 "Skep NUWE baan vir %s en voeg sleutel by?"
@@ -377,10 +378,27 @@ msgstr "Skep"
msgid "Anim Insert"
msgstr "Anim Voeg In"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Animasie Zoem."
+
#: 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
+#, fuzzy
+msgid "property '%s'"
+msgstr "Eienskappe"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim Skep & Voeg by"
@@ -975,7 +993,7 @@ msgstr "Skep Nuwe"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2363,6 +2381,17 @@ 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 ""
@@ -3157,10 +3186,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "Deurlopend"
@@ -3782,6 +3807,15 @@ msgid "Download from:"
msgstr ""
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Open 'n Lêer"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8694,6 +8728,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Hernoem AutoLaai"
@@ -8724,6 +8764,12 @@ msgid "Remove All StyleBox Items"
msgstr "Hernoem AutoLaai"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Gunstelinge:"
@@ -12290,6 +12336,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13942,6 +13996,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 9093792ef8..eb11aa27b6 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -389,6 +389,7 @@ msgstr "تغيير وضع عقدة الحركة"
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 "أنشئ مسار جديد ل %s و إدخال مفتاح؟"
@@ -413,10 +414,28 @@ msgstr "أنشئ"
msgid "Anim Insert"
msgstr "إدخال حركة"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "لا يمكن فتح '%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 "رسوم متحركة"
+
#: 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
+#, fuzzy
+msgid "property '%s'"
+msgstr "لا خاصية '%s' موجودة."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "أنشي حركة وأدخلها"
@@ -988,7 +1007,7 @@ msgstr "إنشاء %s جديد"
msgid "No results for \"%s\"."
msgstr "لا نتائج من أجل \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2333,6 +2352,17 @@ 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 "لا يمكن حفظ الموارد المستوردة."
@@ -3187,10 +3217,6 @@ msgid "Save & Restart"
msgstr "حفظ و إعادة تشغيل"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "قم بالتدوير أثناء إعادة رسم نافذة المحرّر."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "تحديث متواصل"
@@ -3851,6 +3877,16 @@ msgid "Download from:"
msgstr "خطأ في التحميل"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "تشغيل في المتصفح"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "خطأ في نسخ"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8708,6 +8744,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "إزالة جميع العناصر"
@@ -8738,6 +8780,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "إضافة بنود للصنف"
@@ -12401,6 +12449,16 @@ msgstr "تعديل ارتفاع الشكل الأسطواني"
msgid "Change Ray Shape Length"
msgstr "تعديل طول الشكل الشعاعي"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "حدد موقع نقطة الإنحناء"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "حدد موقع نقطة الإنحناء"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "تغيير نصف قطر الاسطوانة"
@@ -14183,6 +14241,42 @@ msgstr ""
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 "سيتم تجاهل هذا الجسم حتى تضع تحدد له مجسمًا."
@@ -15136,9 +15230,6 @@ msgstr "لا يمكن تعديل الثوابت."
#~ msgid "I see..."
#~ msgstr "أنا أري..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "لا يمكن فتح '%s'."
-
#~ msgid "Ugh"
#~ msgstr "آخخ"
diff --git a/editor/translations/az.po b/editor/translations/az.po
index 4ac0ae6469..6c07f98d38 100644
--- a/editor/translations/az.po
+++ b/editor/translations/az.po
@@ -358,6 +358,7 @@ msgstr "Animasya Döngü Rejimini Dəyiş"
msgid "Remove Anim Track"
msgstr "Animasya İzini Sil"
+#. 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 "%s üçün YENİ iz yaradılsın və açar daxil edilsin?"
@@ -383,11 +384,27 @@ msgstr "Yarat"
msgid "Anim Insert"
msgstr "Animasiya Daxil Et"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Animasiyanı Təmizləmə"
+
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer özünü canlandıra bilməz, yalnız digər playerlər."
+#. 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 "Animasiya yaradın və əlavə edin"
@@ -975,7 +992,7 @@ msgstr "Yeni %s yarat"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2286,6 +2303,17 @@ 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 ""
@@ -3065,10 +3093,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3676,6 +3700,14 @@ 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 ""
@@ -8367,6 +8399,12 @@ msgid ""
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 ""
@@ -8391,6 +8429,12 @@ 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 ""
@@ -11802,6 +11846,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13399,6 +13451,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index b0bf9a4d6c..3045c7b781 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -350,6 +350,7 @@ msgstr "Промяна на режима на повтаряне на анима
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 "Създаване на НОВА пътечка за %s и вмъкване на ключ?"
@@ -374,10 +375,28 @@ msgstr "Създаване"
msgid "Anim Insert"
msgstr ""
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Избиране на всичко"
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "property '%s'"
+msgstr "Свойство"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr ""
@@ -934,7 +953,7 @@ msgstr "Създаване на %s"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2244,6 +2263,17 @@ 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 ""
@@ -3050,10 +3080,6 @@ msgid "Save & Restart"
msgstr "Запазване и рестартиране"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3677,6 +3703,16 @@ msgid "Download from:"
msgstr "Грешка при свалянето"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Отваряне във файловия мениджър"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Копиране на грешката"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8462,6 +8498,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Премахване на всички елементи"
@@ -8492,6 +8534,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "Добавяне на всички елементи"
@@ -11965,6 +12013,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13637,6 +13693,42 @@ msgstr ""
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 "Това тяло ще бъде игнорирано, докато не зададете полигонна мрежа."
@@ -14016,10 +14108,6 @@ msgstr "Константите не могат да бъдат променен
#~ msgid "Select Mode (Q)"
#~ msgstr "Режим на Селектиране (Q)"
-#, fuzzy
-#~ msgid "Snap Mode (%s)"
-#~ msgstr "Избиране на всичко"
-
#~ msgid "Project List"
#~ msgstr "Списък с проекти"
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index 384ea57f6c..6cd9e3a81c 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -345,6 +345,7 @@ msgstr "অ্যানিমেশনের লুপ মোড পরিবর
msgid "Remove Anim Track"
msgstr "অ্যানিমেশন (Anim) ট্র্যাক রিমুভ করুন"
+#. 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 "%s এর জন্য নতুন ট্র্যাক/পথ তৈরি করতে এবং চাবি প্রবেশ করাতে চান?"
@@ -369,10 +370,28 @@ msgstr "তৈরি করুন"
msgid "Anim Insert"
msgstr "অ্যানিমেশনে (Anim) অন্তর্ভুক্ত করুন"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "'..' তে পরিচালনা করা সম্ভব নয়"
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "property '%s'"
+msgstr "প্রপার্টি:"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "অ্যানিমেশন (Anim) তৈরি এবং যোগ করুন"
@@ -969,7 +988,7 @@ msgstr "নতুন তৈরি করুন"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2392,6 +2411,18 @@ 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
+#, fuzzy
+msgid "Spins when the editor window redraws."
+msgstr "এডিটরের পুন-অঙ্কনে এটি ঘূর্ণন করে!"
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr ""
@@ -3286,11 +3317,6 @@ msgstr "সংরক্ষণ এবং পুন-ইম্পোর্ট ক
#: editor/editor_node.cpp
#, fuzzy
-msgid "Spins when the editor window redraws."
-msgstr "এডিটরের পুন-অঙ্কনে এটি ঘূর্ণন করে!"
-
-#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
msgstr "অবিচ্ছিন্ন/নিরবচ্ছিন্ন"
@@ -3979,6 +4005,16 @@ msgid "Download from:"
msgstr "নীচে"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "ব্রাউস"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "ভুল/সমস্যা-সমূহ লোড করুন"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -9179,6 +9215,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "ক্লাসের আইটেম অপসারণ করুন"
@@ -9209,6 +9251,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "ক্লাসের আইটেম যোগ করুন"
@@ -13015,6 +13063,16 @@ msgstr "Capsule Shape এর উচ্চতা পরিবর্তন কর
msgid "Change Ray Shape Length"
msgstr "Ray Shape এর দৈর্ঘ্য পরিবর্তন করুন"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "বক্ররেখার বিন্দুর স্থান নির্ধারণ করুন"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "বক্ররেখার বিন্দুর স্থান নির্ধারণ করুন"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -14801,6 +14859,42 @@ msgstr ""
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 ""
@@ -16018,10 +16112,6 @@ msgstr ""
#~ msgid "I see..."
#~ msgstr "বুঝলাম..."
-#, fuzzy
-#~ msgid "Can't open '%s'."
-#~ msgstr "'..' তে পরিচালনা করা সম্ভব নয়"
-
#~ msgid "Ugh"
#~ msgstr "আহ্‌"
diff --git a/editor/translations/br.po b/editor/translations/br.po
index 0f61544190..adee6daaba 100644
--- a/editor/translations/br.po
+++ b/editor/translations/br.po
@@ -340,6 +340,7 @@ msgstr "Cheñch Mod Treiñ ar Fiñvskeudenn"
msgid "Remove Anim Track"
msgstr "Dilemel ar Roudenn Fiñvskeudenn"
+#. 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 "Krouiñ ur roudenn NEVEZ evit %s ha enlakaat an alc'hwez ?"
@@ -364,12 +365,28 @@ msgstr "Krouiñ"
msgid "Anim Insert"
msgstr "Enlakaat Fiñvskeudenn"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Tro Fiñvskeudenn"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"AnimationPlayer n'hall ket en em lakaat de fiñval, met nemet al lennerezhioù "
"all."
+#. 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 "Krouiñ & Enlakaat Fiñvskeudenn"
@@ -934,7 +951,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2226,6 +2243,17 @@ 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 ""
@@ -3005,10 +3033,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3614,6 +3638,14 @@ 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 ""
@@ -8294,6 +8326,12 @@ msgid ""
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 ""
@@ -8318,6 +8356,12 @@ 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 ""
@@ -11725,6 +11769,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13320,6 +13372,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index ab96816ec0..347fea679b 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -350,6 +350,7 @@ msgstr "Canviar Mode de bucle d'Animació"
msgid "Remove Anim Track"
msgstr "Treu la Pista"
+#. 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 "Voleu crear una NOVA pista per a %s i inserir-hi una clau?"
@@ -374,11 +375,29 @@ msgstr "Crea"
msgid "Anim Insert"
msgstr "Insereix una Animació"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "No es pot obrir '%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 "Animació"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"Un AnimationPlayer no pot animar-se a si mateix, només altres reproductors."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "No existeix cap propietat '%s'."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Crea i Insereix"
@@ -958,7 +977,7 @@ msgstr "Crea Nou %s"
msgid "No results for \"%s\"."
msgstr "No hi ha cap resultat per a «%s»."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2315,6 +2334,17 @@ msgid "New Window"
msgstr "Finestra nova"
#: 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 "Gira quan la finestra de l'editor es redibuixa."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Els recursos importats no es poden desar."
@@ -3190,10 +3220,6 @@ msgid "Save & Restart"
msgstr "Desa i Reinicia"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Gira quan la finestra de l'editor es redibuixa."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Actualitzar contínuament"
@@ -3868,6 +3894,16 @@ msgid "Download from:"
msgstr "Error en la Baixada"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Executa-ho en el Navegador"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Copia l'error"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8863,6 +8899,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Treu tots els Elements"
@@ -8893,6 +8935,12 @@ msgid "Remove All StyleBox Items"
msgstr "Treu tots els Elements"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Afegeix Elements de Classe"
@@ -12713,6 +12761,16 @@ msgstr "Modifica l'alçada de la Forma Caixa"
msgid "Change Ray Shape Length"
msgstr "Modifica la longitud de la Forma Raig"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Estableix la Posició del Punt de la Corba"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Estableix la Posició del Punt de la Corba"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Canviar Radi del Cilindre"
@@ -14528,6 +14586,42 @@ msgstr ""
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
#, fuzzy
msgid "This body will be ignored until you set a mesh."
@@ -15820,9 +15914,6 @@ msgstr "Les constants no es poden modificar."
#~ msgid "I see..."
#~ msgstr "Vaja..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "No es pot obrir '%s' ."
-
#~ msgid "Ugh"
#~ msgstr "Uf..."
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index 579289300b..266614bf96 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -362,6 +362,7 @@ msgstr "Změnit mód smyčky animace"
msgid "Remove Anim Track"
msgstr "Odstranit stopu animace"
+#. 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 "Vytvořit NOVOU stopu pro %s a vložit klíč?"
@@ -386,10 +387,28 @@ msgstr "Vytvořit"
msgid "Anim Insert"
msgstr "Animace: vložit"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Nelze otevřít '%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 "Animace"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer nemůže animovat sám sebe, pouze ostatní přehrávače."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Vlastnost '%s' neexistuje."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Animace: Vytvořit a vložit"
@@ -966,7 +985,7 @@ msgstr "Vytvořit nový %s"
msgid "No results for \"%s\"."
msgstr "Žádné výsledky pro \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2313,6 +2332,17 @@ msgid "New Window"
msgstr "Nové okno"
#: 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 "Točí se, když se okno editoru překresluje."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Nelze uložit importované zdroje."
@@ -3165,10 +3195,6 @@ msgid "Save & Restart"
msgstr "Uložit a restartovat"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Točí se, když se okno editoru překresluje."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Aktualizovat průběžně"
@@ -3831,6 +3857,16 @@ msgid "Download from:"
msgstr "Chyba při stahování"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Spustit v prohlížeči"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Kopírovat chybu"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8679,6 +8715,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Odstranit všechny položky"
@@ -8709,6 +8751,12 @@ msgid "Remove All StyleBox Items"
msgstr "Odstranit všechny položky"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Přidat položky třídy"
@@ -12353,6 +12401,16 @@ msgstr "Změnit výšku Cylinder Shape"
msgid "Change Ray Shape Length"
msgstr "Změnit délku Ray Shape"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Nastavit pozici bodu křivky"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Nastavit pozici bodu křivky"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Změnit poloměr Cylinder"
@@ -14097,6 +14155,42 @@ msgstr ""
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 "Toto tělo bude ignorováno dokud nenastavíte síť."
@@ -15196,9 +15290,6 @@ msgstr "Konstanty není možné upravovat."
#~ msgid "I see..."
#~ msgstr "Chápu..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Nelze otevřít '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Ups"
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 163eb546a0..2ab69b5f05 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -363,6 +363,7 @@ msgstr "Ændre Anim Løkke"
msgid "Remove Anim Track"
msgstr "Fjern Anim Spor"
+#. 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 "Opret NYT spor til %s og indsæt nøgle?"
@@ -387,10 +388,28 @@ msgstr "Opret"
msgid "Anim Insert"
msgstr "Anim Indsæt"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Kan ikke åbne '%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 "Animation"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "Animationsafspiller kan ikke animere sig selv, kun andre afspillere."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Egenskaber"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim Opret & Indsæt"
@@ -995,7 +1014,7 @@ msgstr "Opret Ny %s"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2393,6 +2412,18 @@ 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
+#, fuzzy
+msgid "Spins when the editor window redraws."
+msgstr "Snurrer når editor vinduer gentegnes!"
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr ""
@@ -3263,11 +3294,6 @@ msgstr "Gem & genstart"
#: editor/editor_node.cpp
#, fuzzy
-msgid "Spins when the editor window redraws."
-msgstr "Snurrer når editor vinduer gentegnes!"
-
-#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
msgstr "Kontinuerlig"
@@ -3914,6 +3940,16 @@ msgid "Download from:"
msgstr "Download"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Åbn i Filhåndtering"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Indlæs Fejl"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8912,6 +8948,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Fjern Alt"
@@ -8942,6 +8984,12 @@ msgid "Remove All StyleBox Items"
msgstr "Fjern Alt"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Favoritter:"
@@ -12597,6 +12645,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Fjern Kurve Punktets Position"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Fjern Kurve Punktets Position"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -14331,6 +14389,42 @@ msgstr ""
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 ""
@@ -15089,9 +15183,6 @@ msgstr "Konstanter kan ikke ændres."
#~ msgid "I see..."
#~ msgstr "Jeg forstår..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Kan ikke åbne '%s'."
-
#, fuzzy
#~ msgid "Ugh"
#~ msgstr "Ugh"
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 38d565b1cd..6d57f3dcad 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -75,7 +75,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-29 02:33+0000\n"
+"PO-Revision-Date: 2021-08-06 06:47+0000\n"
"Last-Translator: So Wieso <sowieso@dukun.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
@@ -84,7 +84,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.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -406,6 +406,7 @@ msgstr "Animationswiederholungsmodus ändern"
msgid "Remove Anim Track"
msgstr "Spur entfernen"
+#. 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 "NEUE Spur für %s erstellen und Schlüsselbild hinzufügen?"
@@ -430,10 +431,28 @@ msgstr "Erstellen"
msgid "Anim Insert"
msgstr "Einfügen"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "‚%s‘ kann nicht geöffnet werden."
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "animation"
+msgstr "Animation"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer kann sich nicht selbst animieren, nur andere Objekte."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Eigenschaft ‚%s‘ existiert nicht."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Animation Erstellen & Einfügen"
@@ -646,9 +665,8 @@ msgid "Go to Previous Step"
msgstr "Zum vorherigen Schritt"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Zurücksetzen"
+msgstr "Zurücksetzen durchführen"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -667,9 +685,8 @@ msgid "Use Bezier Curves"
msgstr "Bezier-Kurven nutzen"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Spuren einfügen"
+msgstr "RESET Spur(en) erstellen"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -994,7 +1011,6 @@ msgid "Edit..."
msgstr "Bearbeiten..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Zur Methode springen"
@@ -1014,9 +1030,9 @@ msgstr "%s erstellen"
msgid "No results for \"%s\"."
msgstr "Keine Ergebnisse für \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Keine Beschreibung zu ‚%s‘ verfügbar."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1116,7 +1132,6 @@ msgid "Owners Of:"
msgstr "Besitzer von:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
@@ -1124,11 +1139,10 @@ msgid ""
msgstr ""
"Ausgewählte Dateien aus dem Projekt entfernen? (Kann nicht rückgängig "
"gemacht werden.)\n"
-"Die Dateien können möglicherweise aus dem Papierkorb des Betriebssystems "
-"wiederhergestellt werden."
+"Abhängig von den Betriebssystemeinstellungen werden die Dateien in den "
+"Papierkorb verschoben oder permanent gelöscht."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1139,8 +1153,8 @@ msgstr ""
"Andere Ressourcen benötigen die zu entfernenden Dateien, um richtig zu "
"funktionieren.\n"
"Trotzdem entfernen? (Kann nicht rückgängig gemacht werden.)\n"
-"Die Dateien können möglicherweise aus dem Papierkorb des Betriebssystems "
-"wiederhergestellt werden."
+"Abhängig von den Betriebssystemeinstellungen werden die Dateien in den "
+"Papierkorb verschoben oder permanent gelöscht."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1312,41 +1326,39 @@ msgid "Licenses"
msgstr "Lizenzen"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Fehler beim Öffnen der Paketdatei (kein ZIP-Format)."
+msgstr "Fehler beim Öffnen der Nutzerinhaltsdatei „%s“ (kein ZIP-Format)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
msgstr "%s (existiert bereits)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
msgstr ""
+"Nutzerinhalt „%s“ - %d Datei(en) stehen in Konflikt mit diesem Projekt:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "Nutzerinhalt „%s“ - Kein Konflikt mit diesem Projekt:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Inhalte werden entpackt"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Die folgenden Dateien ließen sich nicht aus dem Paket extrahieren:"
+msgstr ""
+"Die folgenden Dateien ließen sich nicht aus dem Nutzerinhaltspaket „%s“ "
+"extrahieren:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Und %s weitere Dateien."
+msgstr "(und %s weitere Dateien)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Paket wurde erfolgreich installiert!"
+msgstr "Nutzerinhaltspaket „%s“ wurde erfolgreich installiert!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1358,9 +1370,8 @@ msgid "Install"
msgstr "Installieren"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Erweiterungenverwaltung"
+msgstr "Nutzerinhalteinstallation"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1423,7 +1434,6 @@ msgid "Bypass"
msgstr "Überbrückung"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "Audiobusoptionen"
@@ -1591,13 +1601,12 @@ msgid "Can't add autoload:"
msgstr "Autoload konnte nicht hinzugefügt werden:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Datei existiert nicht."
+msgstr "%s ist ein ungültiger Pfad. Datei existiert nicht."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s ist ein ungültiger Pfad. Liegt nicht im Ressourcen-Pfad (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1621,9 +1630,8 @@ msgid "Name"
msgstr "Name"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Variable"
+msgstr "Globale Variable"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1799,48 +1807,56 @@ msgstr "Importleiste"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Ermöglicht das Betrachten und Bearbeiten von 3D-Szenen."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
msgstr ""
+"Ermöglicht das Bearbeiten von Skripten mithilfe des integrierten Skript-"
+"Editors."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Stellt Zugriff zur Nutzerinhaltebibliothek her."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Ermöglicht das Bearbeiten der Node-Hierachie in der Szenenleiste."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Ermöglicht die Konfiguration von Signalen und Gruppen des ausgewählten Nodes "
+"in der Szenenleiste."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
msgstr ""
+"Ermöglicht das Betrachten des lokalen Dateisystems in einer eigenen Leiste."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Ermöglicht die Konfiguration von Importeinstellungen für individuelle "
+"Dateien. Benötigt die Dateisystemleiste zum Funktionieren."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Aktuell)"
+msgstr "(ausgewählt)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(keins)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
msgstr ""
+"Aktuell ausgewähltes Profil ‚%s‘ entfernen? Dies kann nicht rückgängig "
+"gemacht werden."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1872,19 +1888,16 @@ msgid "Enable Contextual Editor"
msgstr "Kontextsensitiven Editor aktivieren"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Eigenschaften:"
+msgstr "Klasseneigenschaften:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Eigenschaften und Merkmale"
+msgstr "Wichtigste Funktionen:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Aktivierte Klassen:"
+msgstr "Nodes und Klassen:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1903,7 +1916,6 @@ msgid "Error saving profile to path: '%s'."
msgstr "Fehler beim Speichern des Profils im Pfad: ‚%s‘."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
msgstr "Auf Standardwerte zurücksetzen"
@@ -1912,14 +1924,12 @@ msgid "Current Profile:"
msgstr "Aktuelles Profil:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Profil löschen"
+msgstr "Profil erstellen"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Kachel entfernen"
+msgstr "Profil entfernen"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1939,18 +1949,18 @@ msgid "Export"
msgstr "Exportieren"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Aktuelles Profil:"
+msgstr "Ausgewähltes Profil bearbeiten:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Textureinstellungen"
+msgstr "Zusatzoptionen:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Ein Profil erstellen oder importieren um verfügbare Klassen und "
+"Einstellungen zu bearbeiten."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1977,9 +1987,8 @@ msgid "Select Current Folder"
msgstr "Gegenwärtigen Ordner auswählen"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "Datei existiert bereits. Überschreiben?"
+msgstr "Datei existiert bereits. Soll sie überschrieben werden?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2372,6 +2381,17 @@ msgid "New Window"
msgstr "Neues Fenster"
#: 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 "Dreht sich, wenn das Editorfenster neu gezeichnet wird."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Importierte Ressourcen können nicht abgespeichert werden."
@@ -2604,13 +2624,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"Die aktuelle Szene hat keine Wurzel, dennoch wurden %d bearbeitete externe "
+"Ressource(n) gespeichert."
#: 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 "Ein Wurzel-Node wird benötigt um diese Szene zu speichern."
+msgstr ""
+"Ein Wurzel-Node wird benötigt um diese Szene zu speichern. Ein Wurzel-Node "
+"kann in der Szenenbaumleiste hinzugefügt werden."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -3004,9 +3027,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Verwaltung nicht verwendeter Ressourcen…"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Projekt umbenennen"
+msgstr "Aktuelles Projekt neu laden"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3167,22 +3189,20 @@ msgid "Help"
msgstr "Hilfe"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Dokumentation öffnen"
+msgstr "Internet-Dokumentation"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Fragen & Antworten"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "Fehler berichten"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "Einen Wert setzen"
+msgstr "Neue Funktionalität vorschlagen"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3190,12 +3210,11 @@ msgstr "Dokumentationsvorschläge senden"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr "Community"
+msgstr "Gemeinschaft"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "Über"
+msgstr "Über Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3247,10 +3266,6 @@ msgid "Save & Restart"
msgstr "Speichern & Neu starten"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Dreht sich, wenn das Editorfenster neu gezeichnet wird."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Fortlaufend aktualisieren"
@@ -3292,14 +3307,12 @@ msgid "Manage Templates"
msgstr "Vorlagen verwalten"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "Installiere aus Datei"
+msgstr "Aus Datei installieren"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Quell-Mesh auswählen:"
+msgstr "Android-Quelldateien auswählen"
#: editor/editor_node.cpp
msgid ""
@@ -3384,7 +3397,7 @@ msgstr "Auswählen"
#: editor/editor_node.cpp
#, fuzzy
msgid "Select Current"
-msgstr "Gegenwärtigen Ordner auswählen"
+msgstr "Aktuelles auswählen"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3419,9 +3432,8 @@ msgid "No sub-resources found."
msgstr "Keine Unter-Ressourcen gefunden."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Keine Unter-Ressourcen gefunden."
+msgstr "Liste der Unter-Ressourcen öffnen."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3448,14 +3460,12 @@ msgid "Update"
msgstr "Update"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Version:"
+msgstr "Version"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Autoren"
+msgstr "Autor"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3468,14 +3478,12 @@ msgid "Measure:"
msgstr "Messung:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Renderzeit (Sek)"
+msgstr "Frame-Zeit (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Renderzeit ⌀ (sek)"
+msgstr "Durchschnittszeit (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3502,6 +3510,13 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Inklusive: Beinhaltet Zeiten von anderen Funktionen die von dieser "
+"aufgerufen wurden.\n"
+"Brauchbar um Flaschenhälse zu finden.\n"
+"\n"
+"Eigen: Zählt nur die Zeit in dieser Funktion, nicht die Zeiten von ihr "
+"aufgerufener Funktionen.\n"
+"Brauchbar um einzelne Funktionen zum Optimieren zu finden."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3624,7 +3639,6 @@ msgid "Paste"
msgstr "Einfügen"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "Umwandeln zu %s"
@@ -3674,10 +3688,9 @@ msgid "Did you forget the '_run' method?"
msgstr "Hast du die '_run' Methode vergessen?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Strg-Taste halten um auf Ganzzahlen zu runden. Umschalt-Taste halten für "
+"%s-Taste halten um auf Ganzzahlen zu runden. Umschalt-Taste halten für "
"präzisere Änderungen."
#: editor/editor_sub_scene.cpp
@@ -3698,49 +3711,43 @@ msgstr "Aus Node importieren:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Den Ordner der diese Exportvorlagen enthält öffnen."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Diese Exportvorlage deinstallieren."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "Datei ‚%s‘ existiert nicht."
+msgstr "Keine Mirrors verfügbar."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Mirrors werden geladen, bitte warten..."
+msgstr "Mirror-Liste werden abgerufen…"
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Download wird begonnen…"
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Fehler beim Abrufen der URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "Verbinde mit Mirror..."
+msgstr "Verbindung mit Mirror wird hergestellt..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Kann Hostnamen nicht auflösen:"
+msgstr "Angefragte Adresse konnte nicht aufgelöst werden."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Kann nicht zu Host verbinden:"
+msgstr "Verbindung zu Mirror konnte nicht hergestellt werden."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Keine Antwort von Host:"
+msgstr "Keine Antwort des Mirrors."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3748,18 +3755,16 @@ msgid "Request failed."
msgstr "Anfrage fehlgeschlagen."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Anfrage fehlgeschlagen, zu viele Weiterleitungen"
+msgstr "Anfrage in Weiterleitungsschleife gefangen."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Anfrage fehlgeschlagen."
+msgstr "Anfrage fehlgeschlagen:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Download abgeschlossen; Exportvorlagen werden extrahiert…"
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3778,7 +3783,6 @@ msgid "Error getting the list of mirrors."
msgstr "Fehler beim Laden der Spiegelserver."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr ""
"Fehler beim Einlesen des JSON-Formats der Spiegelserverliste. Bitte diesen "
@@ -3786,7 +3790,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Bester verfügbarer Mirror"
#: editor/export_template_manager.cpp
msgid ""
@@ -3839,24 +3843,20 @@ msgid "SSL Handshake Error"
msgstr "SSL-Handshake-Fehler"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Exportvorlagen-ZIP-Datei konnte nicht geöffnet werden."
+msgstr "Exportvorlagendatei konnte nicht geöffnet werden."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Ungültiges version.txt-Format in Templates: %s."
+msgstr "Ungültiges version.txt-Format in der Exportvorlagendatei: %s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "Keine version.txt in Templates gefunden."
+msgstr "Keine version.txt in Exportvorlagendatei gefunden."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Fehler bei Erzeugen des Pfads für die Vorlagen:"
+msgstr "Fehler bei Erzeugen des Pfads zum Extrahieren der Exportvorlagen:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3867,9 +3867,8 @@ msgid "Importing:"
msgstr "Importiere:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Template-Version ‚%s‘ entfernen?"
+msgstr "Exportvorlagenversion ‚%s‘ entfernen?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3885,44 +3884,54 @@ msgstr "Aktuelle Version:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
-msgstr ""
+msgstr "Exportvorlagen fehlen. Download oder Installation aus Datei nötig."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "Exportvorlagen sind installiert und bereit zum Verwenden."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "Datei öffnen"
+msgstr "Ordner öffnen"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
msgstr ""
+"Order mit den installierten Exportvorlagen der aktuellen Version öffnen."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Deinstallieren"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Anfangswert für Zähler"
+msgstr "Exportvorlagen der aktuellen Version deinstallieren."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Downloadfehler"
+msgstr "Herunterladen von:"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Im Browser ausführen"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Fehlermeldung kopieren"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Herunterladen und installieren"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Exportvorlagen der aktuellen Version vom bestmöglichen Mirror herunterladen "
+"und installieren."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3931,14 +3940,12 @@ msgstr ""
"gestellt."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
-msgstr "Installiere aus Datei"
+msgstr "Aus Datei installieren"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Vorlagen aus ZIP-Datei importieren"
+msgstr "Exportvorlagen aus lokaler Datei installieren."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3946,19 +3953,16 @@ msgid "Cancel"
msgstr "Abbrechen"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "Exportvorlagen-ZIP-Datei konnte nicht geöffnet werden."
+msgstr "Herunterladen der Exportvorlagen abbrechen."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "Installierte Versionen:"
+msgstr "Andere installierte Versionen:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Deinstallieren"
+msgstr "Exportvorlage deinstallieren"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -3973,6 +3977,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Download der Exportvorlage wird fortgesetzt.\n"
+"Der Editor kann nach Ende des Downloads kurzfristig stocken."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4119,35 +4125,32 @@ msgid "Collapse All"
msgstr "Alle einklappen"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Dateien suchen"
+msgstr "Dateien sortieren"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Nach Name sortieren (aufsteigend)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Nach Name sortieren (absteigend)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Nach Typ sortieren (aufsteigend)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Nach Typ sortieren (absteigend)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Zuletzt bearbeitet"
+msgstr "Nach Bearbeitungszeit sortieren (Aktuelles zuerst)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Zuletzt bearbeitet"
+msgstr "Nach Bearbeitungszeit sortieren (Aktuelles zuletzt)"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4159,7 +4162,7 @@ msgstr "Umbenennen..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Suchfeld auswählen"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4471,14 +4474,12 @@ msgid "Failed to load resource."
msgstr "Laden der Ressource gescheitert."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Eigenschaften"
+msgstr "Eigenschaften kopieren"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Eigenschaften"
+msgstr "Eigenschaften einfügen"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4503,23 +4504,20 @@ msgid "Save As..."
msgstr "Speichern als..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "Nicht im Ressourcen-Pfad."
+msgstr "Zusatz-Ressourcenoptionen."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Ressourcen-Zwischenablage bearbeiten"
+msgstr "Ressource in Zwischenablage bearbeiten"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "Ressource kopieren"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "Einbetten"
+msgstr "Ressource zu Built-In konvertieren"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4534,9 +4532,8 @@ msgid "History of recently edited objects."
msgstr "Verlauf der zuletzt bearbeiteten Objekte."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Dokumentation öffnen"
+msgstr "Dokumentation zu diesem Objekt öffnen."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4547,9 +4544,8 @@ msgid "Filter properties"
msgstr "Eigenschaften filtern"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Objekteigenschaften."
+msgstr "Objekteigenschaften verwalten."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4795,9 +4791,8 @@ msgid "Blend:"
msgstr "Blende:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parameter geändert"
+msgstr "Parameter geändert:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5527,11 +5522,11 @@ msgstr "Alle"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Vorlagen, Projekte und Demos durchsuchen"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Assets durchsuchen (ausgenommen Vorlagen, Projekte und Demos)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5575,7 +5570,7 @@ msgstr "Nutzerinhalte als ZIP-Datei"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Audiovorschau abspielen/pausieren"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5836,13 +5831,13 @@ msgstr "Ankerpunkte ändern"
#: 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 ""
-"Spielekamera überschreiben\n"
-"Überschreibt die Spielekamera mit der Kamera des Anzeigefensters des Editors."
+"Projektkamera überbrücken\n"
+"Überbrückt die Kamera des laufenden Projekts mit der Kamera des "
+"Anzeigefensters des Editors."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5851,6 +5846,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"Projektkamera überbrücken\n"
+"Es wird zur Zeit keine Projektinstanz ausgeführt. Um diese Funktion zu "
+"nutzen muss ein Projekt durch den Editor gestartet werden."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5918,32 +5916,27 @@ msgstr "Auswahlmodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Ausgewählten Node oder Übergang entfernen."
+msgstr "Ziehen: Ausgewähltes Node um Pivotpunkt rotieren."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Ziehen = Verschieben"
+msgstr "Alt+Ziehen = Ausgewähltes Node verschieben."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Ausgewählten Node oder Übergang entfernen."
+msgstr "V: Pivotpunkt des ausgewählten Nodes festlegen."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Zeige eine Liste aller Objekte, die sich an der angeklickten Position "
-"befinden\n"
-"(equivalent zu Alt+RMT im Auswahlmodus)."
+"Alt+RMT: Liste aller Nodes an Klickposition anzeigen, einschließlich "
+"gesperrter."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "RMT: Node an Klickposition hinzufügen."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6183,14 +6176,12 @@ msgid "Clear Pose"
msgstr "Pose/Stellung löschen"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "Node hinzufügen"
+msgstr "Node hier hinzufügen"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Instanz-Szene(n)"
+msgstr "Szene hier instantiieren"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6206,49 +6197,43 @@ msgstr "Sicht verschieben"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Auf 3.125% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Auf 6.25% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Auf 12.5% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Verkleinern"
+msgstr "Auf 25% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Verkleinern"
+msgstr "Auf 50% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Verkleinern"
+msgstr "Auf 100% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Verkleinern"
+msgstr "Auf 200% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Verkleinern"
+msgstr "Auf 400% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Verkleinern"
+msgstr "Auf 800% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Auf 1600% vergrößern"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6495,9 +6480,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "Ein einzelnes konvexes Kollisionselement konnte nicht erzeugt werden."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "Einzelne konvexe Form erstellen"
+msgstr "Vereinfachte konvexe Form erstellen"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6535,9 +6519,8 @@ msgid "No mesh to debug."
msgstr "Kein Mesh zu debuggen."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "Modell besitzt kein UV in dieser Schicht"
+msgstr "Mesh hat kein UV in Schicht %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6602,16 +6585,19 @@ msgstr ""
"Dies ist die schnellste (aber ungenauste) Methode für Kollisionsberechnungen."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "Ein einzelnes konvexes Kollisionsnachbarelement erzeugen"
+msgstr "Vereinfachtes konvexes Kollisionsnachbarelement erzeugen"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
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 ""
+"Erzeugt ein vereinfachtes konvexes Collision Shape.\n"
+"Dies ist ähnlich zu einem einzigen Collision Shape, kann allerdings manchmal "
+"zu einfacherer Geometrie führen, auf Kosten der Genauigkeit."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
@@ -6624,8 +6610,9 @@ msgid ""
"This is a performance middle-ground between a single convex collision and a "
"polygon-based collision."
msgstr ""
-"Erstellt ein polygon-basiertes Kollisionselement.\n"
-"Dies liegt von der Geschwindigkeit in der Mitte der beiden anderen Methoden."
+"Erstellt ein polygon-basiertes Collision Shape.\n"
+"Dies liegt von der Geschwindigkeit in der Mitte zwischen einer einzelnen "
+"konvexen Kollision und einer polygon-basierten Kollision."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -7271,24 +7258,20 @@ msgid "ResourcePreloader"
msgstr "Ressourcen-Vorlader"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Horizontal umdrehen"
+msgstr "Portale umdrehen"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Anzahl generierter Punkte:"
+msgstr "Generiere Punkte mittels Room"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Anzahl generierter Punkte:"
+msgstr "Generiere Punkte"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Horizontal umdrehen"
+msgstr "Portal umdrehen"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7854,20 +7837,17 @@ msgid "None"
msgstr "Nichts"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Status"
+msgstr "Rotierung"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Translation:"
+msgstr "Verschiebung"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Skalierung:"
+msgstr "Skalierung"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7890,52 +7870,44 @@ msgid "Animation Key Inserted."
msgstr "Animationsschlüsselbild eingefügt."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Neigen"
+msgstr "Neigung:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Gierung:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Größe: "
+msgstr "Größe:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Gezeichnete Objekte"
+msgstr "Gezeichnete Objekte:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Materialänderungen"
+msgstr "Materialänderungen:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Shader-Änderungen"
+msgstr "Shader-Änderungen:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Oberflächen-Änderungen"
+msgstr "Oberflächen-Änderungen:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Zeichenaufrufe"
+msgstr "Zeichenaufrufe:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Eckpunkte"
+msgstr "Eckpunkte:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -8091,9 +8063,8 @@ msgid "Freelook Slow Modifier"
msgstr "Freisicht Trägheitsregler"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "Ändere Kameragröße"
+msgstr "Kameravorschau umschalten"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8115,9 +8086,8 @@ msgstr ""
"Sie ist kein zuverlässiger Vergleichswert für die In-Spiel-Leistung."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Umwandeln zu %s"
+msgstr "Räume umwandeln"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8139,7 +8109,6 @@ msgstr ""
"(\"Röntgenblick\")."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Nodes am Boden einrasten"
@@ -8159,7 +8128,7 @@ msgstr "Einrasten aktivieren"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Räume für Portal-Culling konvertieren."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8255,9 +8224,8 @@ msgid "View Grid"
msgstr "Zeige Gitter"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Einstellungen für Ansichten"
+msgstr "Portal-Culling anzeigen"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8579,221 +8547,196 @@ msgid "TextureRegion"
msgstr "Texturbereich"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Farbe"
+msgstr "Farben"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Schriftart"
+msgstr "Schriftarten"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Symbol"
+msgstr "Symbole"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "Style-Box"
+msgstr "Style-Boxen"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} Farbe(n)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Keine Unter-Ressourcen gefunden."
+msgstr "Keine Farben gefunden."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Konstanten"
+msgstr "{num} Konstante(n)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Farbkonstante."
+msgstr "Keine Konstanten gefunden."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} Schriftart(en)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "Nicht gefunden!"
+msgstr "Keine Schriftarten gefunden."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} Symbol(e)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "Nicht gefunden!"
+msgstr "Keine Symbole gefunden."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} Style-Box(en)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "Keine Unter-Ressourcen gefunden."
+msgstr "Keine Style-Boxen gefunden."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} zurzeit ausgewählt"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "Es wurde nichts zum Importieren ausgewählt."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Theme importieren"
+msgstr "Am Importieren von Thema-Elementen"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Am Importieren von Elementen {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Editor verlassen?"
+msgstr "Den Editor aktualisieren?"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "Analysiere"
+msgstr "Fertigstellen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Filter: "
+msgstr "Filter:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "Mit Daten"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Node auswählen"
+msgstr "Nach Datentyp auswählen:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Teilung zum Löschen auswählen."
+msgstr "Alle sichtbaren Farbelemente auswählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Alle sichtbaren Farbelemente und deren Daten auswählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Alle sichtbaren Farbelemente abwählen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Zuerst Einstellungspunkt auswählen!"
+msgstr "Alle sichtbaren konstanten Elemente auswählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Alle sichtbaren konstanten Elemente und ihre Daten auswählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Alle sichtbaren konstanten Elemente abwählen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Zuerst Einstellungspunkt auswählen!"
+msgstr "Alle sichtbaren Schriftart-Elemente auswählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "Alle sichtbaren Schriftart-Elemente und ihre Daten auswählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Alle sichtbaren Schriftart-Elemente abwählen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Zuerst Einstellungspunkt auswählen!"
+msgstr "Alle sichtbaren Symbolelemente auswählen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Zuerst Einstellungspunkt auswählen!"
+msgstr "Alle sichtbaren Symbolelemente und ihre Daten auswählen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Zuerst Einstellungspunkt auswählen!"
+msgstr "Alle sichtbaren Symbolelemente abwählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Alle sichtbaren Style-Box-Elemente auswählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "Alle sichtbaren Style-Box-Elemente und ihre Daten auswählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "Alle sichtbaren Style-Box-Elemente abwählen."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"Vorsicht: Das Hinzufügen von Symbolelement-Daten kann die Thema-Ressource "
+"erheblich vergrößern."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Alle einklappen"
+msgstr "Typen einklappen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Alle ausklappen"
+msgstr "Typen ausklappen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Vorlagendatei auswählen"
+msgstr "Alle Thema-Elemente auswählen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Punkte auswählen"
+msgstr "Mit Daten auswählen"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Alle Thema-Elemente mit Element-Daten auswählen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Alles auswählen"
+msgstr "Alles abwählen"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Alle Themen-Elemente abwählen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Szene importieren"
+msgstr "Ausgewähltes importieren"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8801,271 +8744,245 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"Es sind Elemente im „Elemente importieren“-Tab ausgewählt. Diese Auswahl "
+"wird beim Schließen des Fensters verloren gehen.\n"
+"Trotzdem schließen?"
+
+#: 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
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Alle Elemente entfernen"
+msgstr "Alle Farbelemente entfernen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Entferne Element"
+msgstr "Element umbenennen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Alle Elemente entfernen"
+msgstr "Alle konstanten Elemente entfernen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Alle Elemente entfernen"
+msgstr "Alle Schriftart-Elemente entfernen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Alle Elemente entfernen"
+msgstr "Alle Symbol-Elemente entfernen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Alle Elemente entfernen"
+msgstr "Alle StyleBox-Elemente entfernen"
+
+#: 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
-#, fuzzy
msgid "Add Color Item"
-msgstr "Füge Klassen-Element hinzu"
+msgstr "Farbelement hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Füge Klassen-Element hinzu"
+msgstr "Konstantes Element hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Element hinzufügen"
+msgstr "Schriftart-Element hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Element hinzufügen"
+msgstr "Symbol-Element hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Alle Elemente hinzufügen"
+msgstr "StyleBox-Element hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Entferne Klassen-Element"
+msgstr "Farbelement umbenennen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Entferne Klassen-Element"
+msgstr "Konstantes Element umbenennen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Node umbenennen"
+msgstr "Schriftart-Element umbenennen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Node umbenennen"
+msgstr "Symbol-Element umbenennen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Ausgewähltes Element entfernen"
+msgstr "StyleBox-Element umbenennen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Ungültige Datei, kein Audiobus-Layout."
+msgstr "Ungültige Datei, keine Thema-Ressource."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Ungültige Datei, ist identisch mit der bearbeiteten Thema-Ressource."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Vorlagen verwalten"
+msgstr "Thema-Elemente verwalten"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Bearbeitbares Element"
+msgstr "Element bearbeiten"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Typ:"
+msgstr "Typen:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Typ:"
+msgstr "Typ hinzufügen:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Element hinzufügen"
+msgstr "Element hinzufügen:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Alle Elemente hinzufügen"
+msgstr "StyleBox-Element hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Entferne Element"
+msgstr "Elemente entfernen:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "Entferne Klassen-Element"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Entferne Klassen-Element"
+msgstr "Eigene Elemente entfernen"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Alle Elemente entfernen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "GUI-Thema-Elemente"
+msgstr "Thema-Element hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Node-Name:"
+msgstr "Alter Name:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Theme importieren"
+msgstr "Elemente importieren"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Standard"
+msgstr "Standard-Thema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Thema bearbeiten"
+msgstr "Editor-Motiv"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Ressource löschen"
+msgstr "Andere Thema-Ressource auswählen:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Theme importieren"
+msgstr "Anderes Design"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Spur umbenennen"
+msgstr "Elementumbenennung bestätigen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Stapelweise Umbenennung"
+msgstr "Elementumbenennung abbrechen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Überschreibungen"
+msgstr "Element überbrücken"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "Diese StyleBox nicht mehr als Hauptstil markieren."
#: 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 ""
+"Diese StyleBox als Hauptstil markieren. Geänderte Eigenschaften dieser "
+"StyleBox werden ebenfalls in allen StyleBoxen des gleichen Typs geändert."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "Art"
+msgstr "Typ hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Element hinzufügen"
+msgstr "Elementtyp hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Node-Typ"
+msgstr "Node-Typen:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Standard laden"
+msgstr "Standard anzeigen"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
-msgstr ""
+msgstr "Standard Typelemente zusammen mit überbrückten Elementen anzeigen."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Überschreibungen"
+msgstr "Alle überbrücken"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "Alle Standard-Typelemente überbrücken."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Designvorlagen (Thema)"
+msgstr "Thema:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "Exportvorlagen verwalten…"
+msgstr "Elemente verwalten…"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "Themenelemente hinzufügen, entfernen, verwalten und importieren."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Vorschau"
+msgstr "Vorschau hinzufügen"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Vorschau aktualisieren"
+msgstr "Standard-Vorschau"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Quell-Mesh auswählen:"
+msgstr "UI-Szene auswählen:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
+"Auswahlmodus für Control-Nodes umschalten. Erlaubt das visuelle Auswählen "
+"von Control-Nodes zum Bearbeiten."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
@@ -9100,9 +9017,8 @@ msgid "Checked Radio Item"
msgstr "Markiertes Element der Auswahl"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Ben. Trenner."
+msgstr "Benannter Trenner"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9155,19 +9071,21 @@ msgstr "Hat,Mehrere,Einstellungen"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
msgstr ""
+"Ungültiger Pfad. Die PackedScene-Ressource wurde vermutlich verschoben oder "
+"gelöscht."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
msgstr ""
+"Ungültige PackedScene-Ressource. Muss ein Control-Node als Wurzel haben."
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "Ungültige Datei, kein Audiobus-Layout."
+msgstr "Ungültige Datei, keine PackedScene-Ressource."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "Die Szene neu laden um ihren aktuellsten Status widerzuspiegeln."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -10574,9 +10492,8 @@ msgid "VisualShader"
msgstr "VisuellerShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Visuelle Eigenschaft bearbeiten"
+msgstr "Visuelle Eigenschaft bearbeiten:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10701,9 +10618,8 @@ msgid "Script"
msgstr "Skript"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Skript-Exportmodus:"
+msgstr "GDScript-Exportmodus:"
#: editor/project_export.cpp
msgid "Text"
@@ -10711,21 +10627,21 @@ msgstr "Text"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Kompilierter Bytecode (schnelleres Laden)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "Verschlüsselt (Schlüssel unten angeben)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "Ungültiger Schlüssel für Verschlüsselung (muss 64 Zeichen lang sein)"
+msgstr ""
+"Ungültiger Schlüssel für Verschlüsselung (muss aus 64 hexadezimalen Zeichen "
+"bestehen)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "Skript-Schlüssel (256 Bit hexadezimal):"
+msgstr "Schlüssel zur GDScript-Verschlüsselung (256 bit, hexadezimal):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10797,7 +10713,6 @@ msgid "Imported Project"
msgstr "Importiertes Projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Ungültiger Projektname."
@@ -11027,14 +10942,12 @@ msgid "Are you sure to run %d projects at once?"
msgstr "Sollen wirklich %d Projekte gleichzeitig ausgeführt werden?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "Gerät aus Liste auswählen"
+msgstr "%d Projekte aus Liste entfernen?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Gerät aus Liste auswählen"
+msgstr "Dieses Projekt von Liste entfernen?"
#: editor/project_manager.cpp
msgid ""
@@ -11067,9 +10980,8 @@ msgid "Project Manager"
msgstr "Projektverwaltung"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Projekte"
+msgstr "Lokale Projekte"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11080,23 +10992,20 @@ msgid "Last Modified"
msgstr "Zuletzt bearbeitet"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Projekt exportieren"
+msgstr "Projekt bearbeiten"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Projekt umbenennen"
+msgstr "Projekt ausführen"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "Scannen"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Projekte"
+msgstr "Nach Projekten suchen"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -11107,14 +11016,12 @@ msgid "New Project"
msgstr "Neues Projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Importiertes Projekt"
+msgstr "Projekt importieren"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Projekt umbenennen"
+msgstr "Projekt entfernen"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11125,9 +11032,8 @@ msgid "About"
msgstr "Über"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Bestandsbibliothek (AssetLib)"
+msgstr "Nutzerinhalte-Projekte"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11139,7 +11045,7 @@ msgstr "Alles entfernen"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "Ebenfalls Projektinhalte löschen (nicht rückgängig machbar!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11155,21 +11061,19 @@ msgstr ""
"werden?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Eigenschaften filtern"
+msgstr "Projekte filtern"
#: editor/project_manager.cpp
-#, fuzzy
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 ""
-"Die Suchmaske filtert Projekte nach ihrem Namen oder der letzten Komponente "
-"ihres Pfadnamens.\n"
-"Um den Filter auf den gesamten Pfadnamen anzuwenden muss mindestens ein ‚/‘-"
-"Zeichen in der Suchanfrage vorhanden sein."
+"Diese Suchmaske filtert Projekte nach ihrem Namen oder der letzten "
+"Komponente ihres Pfadnamens.\n"
+"Um nach dem kompletten Pfad zu filtern muss mindestens ein ‚/‘-Zeichen in "
+"der Suchanfrage vorhanden sein."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -11177,7 +11081,7 @@ msgstr "Taste "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "Physische Taste"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11225,7 +11129,7 @@ msgstr "Gerät"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (physisch)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11368,23 +11272,20 @@ msgid "Override for Feature"
msgstr "Für Funktion überschreiben"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Übersetzung hinzufügen"
+msgstr "%d Übersetzungen hinzufügen"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "Übersetzung entfernen"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "Ressourcen-Umleitung hinzufügen"
+msgstr "Übersetzungsressourcenumschreibung: %d Pfad(e) hinzufügen"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "Ressourcen-Umleitung hinzufügen"
+msgstr "Übersetzungsressourcenumschreibung: %d Umschreibung(en) hinzufügen"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11831,12 +11732,16 @@ msgstr "Node „%s“ löschen?"
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
msgstr ""
+"Um den Zweig als Szene speichern zu können muss eine Szene im Editor "
+"geöffnet sein."
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires selecting only one node, but you have "
"selected %d nodes."
msgstr ""
+"Um den Zweig als Szene speichern zu können darf nur ein Node ausgewählt "
+"sein. Es sind allerdings %d Nodes ausgewählt."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11845,6 +11750,11 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"Der Wurzel-Node-Zweig kann nicht als instantiierte Szene gespeichert "
+"werden.\n"
+"Eine bearbeitbare Kopie der aktuellen Szene kann im Kontextmenü der "
+"Dateisystemleiste\n"
+"oder im Menü unter „Szene > Neue geerbte Szene…“ erstellt werden."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11852,6 +11762,10 @@ msgid ""
"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 ""
+"Zeig einer bereits instantiierten Szene kann nicht gespeichert werden.\n"
+"Ein Abwandlung der Szene zu erstellen, kann eine geerbten Szene, basiert auf "
+"der instantiierten Szene, im Menü unter „Szene > Neue geerbte Szene…“ "
+"erzeugt werden."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12260,6 +12174,8 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"Hinweis: Der Skriptname ist identisch mit dem Name eines Built-In-Typs, "
+"üblicherweise ein Fehler."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12331,7 +12247,7 @@ msgstr "Fehlermeldung kopieren"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "C++-Quelldatei auf GitHub aufrufen"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12509,6 +12425,16 @@ msgstr "Zylinderformhöhe ändern"
msgid "Change Ray Shape Length"
msgstr "Ändere Länge der Strahlenform"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Kurvenpunktposition festlegen"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Kurvenpunktposition festlegen"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Zylinderradius ändern"
@@ -12620,14 +12546,12 @@ msgid "Object can't provide a length."
msgstr "Objekt kann keine Länge vorweisen."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "MeshLibrary exportieren"
+msgstr "GLTF2-Mesh exportieren"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Exportieren..."
+msgstr "GLTF exportieren..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12670,9 +12594,8 @@ msgid "GridMap Paint"
msgstr "GridMap zeichnen"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "GridMap-Auswahl füllen"
+msgstr "GridMap-Auswahl"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12925,14 +12848,12 @@ msgid "Add Output Port"
msgstr "Ausgangsschnittstelle hinzufügen"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "Typ ändern"
+msgstr "Schnittstellentyp ändern"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "Eingangsschnittstellenname ändern"
+msgstr "Schnittstellenname ändern"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -13047,9 +12968,8 @@ msgid "Add Preload Node"
msgstr "Preload-Node hinzufügen"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "Node hinzufügen"
+msgstr "Node(s) hinzufügen"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -13316,37 +13236,31 @@ msgstr "Gerät aus Liste auswählen"
#: platform/android/export/export.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "Läuft auf %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting APK..."
-msgstr "Exportiere alles"
+msgstr "APK exportieren…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Uninstalling..."
-msgstr "Deinstallieren"
+msgstr "Am Deinstallieren…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Installing to device, please wait..."
-msgstr "Projekte werden geladen, bitte warten..."
+msgstr "Am Installieren auf Gerät, bitte warten..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not install to device: %s"
-msgstr "Konnte Szene nicht instantiieren!"
+msgstr "Konnte Installation auf Gerät nicht durchführen: %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Running on device..."
-msgstr "Angepasstes Skript wird ausgeführt..."
+msgstr "Auf Gerät ausführen…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not execute on device."
-msgstr "Ordner konnte nicht erstellt werden."
+msgstr "Ließ sich nicht auf Gerät ausführen."
#: platform/android/export/export.cpp
msgid "Unable to find the 'apksigner' tool."
@@ -13475,40 +13389,37 @@ msgid ""
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"‚apksigner‘ konnte nicht gefunden werden.\n"
+"Ist das Programm im Android SDK build-tools-Verzeichnis vorhanden?\n"
+"Das resultierende %s ist nicht signiert."
#: platform/android/export/export.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "Signiere Debug-Build %s…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Signing release %s..."
-msgstr ""
-"Lese Dateien,\n"
-"Bitte warten..."
+msgstr "Signiere Release-Build %s…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not find keystore, unable to export."
-msgstr "Konnte Vorlage nicht zum Export öffnen:"
+msgstr "Keystore konnte nicht gefunden werden, Export fehlgeschlagen."
#: platform/android/export/export.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "‚apksigner‘ gab Fehlercode #%d zurück"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Verifying %s..."
-msgstr "%s hinzufügen…"
+msgstr "Verifiziere %s…"
#: platform/android/export/export.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "‚apksigner‘-Verifizierung von %s fehlgeschlagen."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting for Android"
-msgstr "Exportiere alles"
+msgstr "Exportiere für Android"
#: platform/android/export/export.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
@@ -13527,7 +13438,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "Nicht unterstütztes Exportformat!\n"
#: platform/android/export/export.cpp
msgid ""
@@ -13554,16 +13465,16 @@ msgstr ""
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"Kann res://android/build/res/*.xml Dateien nicht mit Projektnamen "
+"überschreiben"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr "project.godot konnte nicht im Projektpfad gefunden werden."
+msgstr "Konnte Projektdateien nicht als Gradle-Projekt exportieren\n"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not write expansion package file!"
-msgstr "Konnte Datei nicht schreiben:"
+msgstr "Konnte Expansion-Package-Datei nicht schreiben!"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -13592,21 +13503,20 @@ msgstr ""
"im Gradle Projektverzeichnis erscheinen."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Package not found: %s"
-msgstr "Animation nicht gefunden: ‚%s‘"
+msgstr "Paket nicht gefunden: %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Creating APK..."
-msgstr "Konturen erzeugen..."
+msgstr "Erzeuge APK…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "Konnte Vorlage nicht zum Export öffnen:"
+msgstr ""
+"Konnte keine APK-Vorlage zum Exportieren finden:\n"
+"%s"
#: platform/android/export/export.cpp
msgid ""
@@ -13615,16 +13525,18 @@ msgid ""
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"Fehlende Bibliotheken in Exportvorlage für die ausgewählten Architekturen: "
+"%s.\n"
+"Es muss entweder eine Exportvorlage mit den allen benötigten Bibliotheken "
+"gebaut werden oder die angegebenen Architekturen müssen abgewählt werden."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Adding files..."
-msgstr "%s hinzufügen…"
+msgstr "Füge Dateien hinzu…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files"
-msgstr "Konnte Datei nicht schreiben:"
+msgstr "Projektdateien konnten nicht exportiert werden"
#: platform/android/export/export.cpp
msgid "Aligning APK..."
@@ -13632,7 +13544,7 @@ msgstr "Richte APK aus..."
#: platform/android/export/export.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "Temporäres unausgerichtetes APK konnte nicht entpackt werden."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13680,45 +13592,40 @@ msgid "Could not write file:"
msgstr "Konnte Datei nicht schreiben:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Konnte Datei nicht schreiben:"
+msgstr "Konnte Datei nicht lesen:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "Konnte benutzerdefinierte HTML-Shell nicht lesen:"
+msgstr "Konnte HTML-Shell nicht lesen:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "Ordner konnte nicht erstellt werden."
+msgstr "Konnte HTTP-Server-Verzeichnis nicht erstellen:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Fehler beim Speichern der Szene."
+msgstr "Fehler beim Starten des HTTP-Servers:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Ungültiger Bezeichner:"
+msgstr "Ungültiger Bundle-Bezeichner:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "Beglaubigung: Code-Signierung wird benötigt."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "Beglaubigung: Abgehärtete Ausführungsumgebung wird benötigt."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "Beglaubigung: Apple-ID-Name nicht angegeben."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "Beglaubigung: Apple-ID-Passwort nicht angegeben."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14162,6 +14069,9 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"Die Compress-Option von GIProbe gilt als veraltet wegen vorhandener Fehler "
+"und hat keinen Effekt mehr.\n"
+"Um diese Warnung zu deaktivieren, muss die Option deaktiviert werden."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14255,14 +14165,16 @@ msgstr "Node A und Node B müssen unterschiedliche PhysicsBody-Nodes sein"
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
msgstr ""
+"RoomManager darf kein direktes oder indirektes Unterelement von Portal sein."
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Room darf kein direktes oder indirektes Unterelement von Portal sein."
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
msgstr ""
+"RoomGroup darf kein direktes oder indirektes Unterelement von Portal sein."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -14275,41 +14187,85 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
msgstr ""
+"Room darf kein direktes oder indirektes Unterelement von einem anderen Room "
+"sein."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "RoomManager darf nicht in einem Room platziert werden."
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "RoomGroup darf nicht in einem Room platziert werden."
#: 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 ""
+"Die konvexe Hülle von Room enthält viele Ebenen.\n"
+"Es bietet sich an Room-Hülle zu vereinfachen um die Leistung zu steigern."
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "RoomManager darf nicht in einer RoomGroup platziert werden."
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "RoomList wurde nicht zugewiesen."
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
msgstr ""
+"Das RoomList-Node muss ein Spatial (oder ein von Spatial abgeleitetes Node) "
+"sein."
#: 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 ""
+"Die Portal-Tiefengrenze liegt bei Null.\n"
+"Nur der Raum, der die Kamera enthält, wird gerendert werden."
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
+msgstr "Es darf nur ein RoomManager im Szenenbaum vorhanden sein."
+
+#: 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
@@ -14378,7 +14334,7 @@ msgstr "Animation nicht gefunden: ‚%s‘"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "Anim Reset anwenden"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14562,25 +14518,30 @@ msgid "Invalid comparison function for that type."
msgstr "Ungültige Vergleichsfunktion für diesen Typ."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
+msgstr "Varyings dürfen nicht in Funktion ‚%s‘ zugewiesen werden."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"Varyings, welche in der ‚vertex‘-Funktion zugewiesen wurden, können nicht "
+"erneut in der ‚fragment‘- oder ‚light‘-Funktion zugewiesen werden."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"Varyings, welche in der ‚fragment‘-Funktion zugewiesen wurden, können nicht "
+"erneut in der ‚vertex‘- oder ‚light‘-Funktion zugewiesen werden."
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
msgstr ""
+"Varying aus Fragment-Phase konnte nicht in gesonderter Funktion abgerufen "
+"werden!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -15780,9 +15741,6 @@ msgstr "Konstanten können nicht verändert werden."
#~ msgid "I see..."
#~ msgstr "Verstehe..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "‚%s‘ kann nicht geöffnet werden."
-
#~ msgid "Ugh"
#~ msgstr "Ähm"
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index bbd0bf9a6a..0f3b125484 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -331,6 +331,7 @@ msgstr ""
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 ""
@@ -355,10 +356,25 @@ msgstr ""
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 ""
@@ -913,7 +929,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2204,6 +2220,17 @@ 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 ""
@@ -2983,10 +3010,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3591,6 +3614,14 @@ 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 ""
@@ -8268,6 +8299,12 @@ msgid ""
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 ""
@@ -8292,6 +8329,12 @@ 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 ""
@@ -11699,6 +11742,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13293,6 +13344,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/el.po b/editor/translations/el.po
index b26b28b5d4..93b5941f64 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -350,6 +350,7 @@ msgstr "Αλλαγή λειτουργίας επανάληψης κίνησης"
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 "Δημιουργία νέου κομματιού για %s και εισαγωγή κλειδιού;"
@@ -374,10 +375,28 @@ msgstr "Δημιουργία"
msgid "Anim Insert"
msgstr "Εισαγωγή Κίνησης"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Αδύνατο το άνοιγμα του '%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 "Κίνηση"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "Ένα AnimationPlayer δεν μπορεί να κινήσει τον εαυτό του."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Η ιδιότητα '%s' δεν υπάρχει."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Δημιουργία & Εισαγωγή Κίνησης"
@@ -960,7 +979,7 @@ msgstr "Δημιουργία νέου %s"
msgid "No results for \"%s\"."
msgstr "Κανένα αποτέλεσμα για \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2312,6 +2331,17 @@ 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 "Οι εισαγμένοι πόροι δεν μπορούν να αποθηκευτούν."
@@ -3190,10 +3220,6 @@ msgid "Save & Restart"
msgstr "Αποθήκευση & Επανεκκίνηση"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Περιστρέφεται όταν το παράθυρο του επεξεργαστή επαναχρωματίζεται."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Συνεχόμενη Ανανέωση"
@@ -3859,6 +3885,16 @@ msgid "Download from:"
msgstr "Σφάλμα λήψης"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Εκτέλεση στον περιηγητή"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Αντιγραφή σφάλματος"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8759,6 +8795,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Αφαίρεση όλων των στοιχείων"
@@ -8789,6 +8831,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "Προσθήκη στοιχείων κλάσης"
@@ -12470,6 +12518,16 @@ msgstr "Αλλαγή Ύψους Σχήματος Κυλίνδρου"
msgid "Change Ray Shape Length"
msgstr "Αλλαγή μήκους ακτίνας"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Ορισμός θέσης σημείου καμπύλης"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Ορισμός θέσης σημείου καμπύλης"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Αλλαγή Ακτίνας Κυλίνδρου"
@@ -14265,6 +14323,42 @@ msgstr ""
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 "Το σώμα αυτό δε θα ληφθεί υπόψιν μέχρι να ορίσετε ένα πλέγμα (mesh)."
@@ -15708,9 +15802,6 @@ msgstr "Οι σταθερές δεν μπορούν να τροποποιηθο
#~ msgid "I see..."
#~ msgstr "Εντάξει..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Αδύνατο το άνοιγμα του '%s'."
-
#~ msgid "Ugh"
#~ msgstr "α..."
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index 51c69266cb..9f8c869bee 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -346,6 +346,7 @@ msgstr "Aliigi Animadon Iteracion Modon"
msgid "Remove Anim Track"
msgstr "Forigi animacian trakon"
+#. 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 "Krei NOVAN trakon por %s kaj enmeti ŝlosilon?"
@@ -370,10 +371,27 @@ msgstr "Krei"
msgid "Anim Insert"
msgstr "Animado Enmetu"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Animacio"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer ne povas animi si mem, nur aliajn ludantojn."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Atributo"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Animado Krei & Enmeti"
@@ -949,7 +967,7 @@ msgstr "Kreu novan %s"
msgid "No results for \"%s\"."
msgstr "Ne rezultoj por \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2299,6 +2317,17 @@ msgid "New Window"
msgstr "Nova Fenestro"
#: 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 "Rotacius kiam la fenestron de la redaktilo redesegniĝi."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Enportitaj risurcoj ne povas konservi."
@@ -3169,10 +3198,6 @@ msgid "Save & Restart"
msgstr "Konservi kaj rekomenci"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Rotacius kiam la fenestron de la redaktilo redesegniĝi."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Ĝisdatigi kontinue"
@@ -3827,6 +3852,16 @@ msgid "Download from:"
msgstr "Elŝuta eraro"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Ruli en foliumilo"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Kopii eraro"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8655,6 +8690,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Forigi elementon"
@@ -8685,6 +8726,12 @@ msgid "Remove All StyleBox Items"
msgstr "Forigi elementon"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Aldoni al favoritaj"
@@ -12208,6 +12255,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13839,6 +13894,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/es.po b/editor/translations/es.po
index 6f0b9cd14f..eef4affde3 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -68,11 +68,12 @@
# hiking <joaquinfc@protonmail.com>, 2021.
# pabloggomez <pgg2733@gmail.com>, 2021.
# Erick Figueroa <querecuto@hotmail.com>, 2021.
+# jonagamerpro1234 ss <js398704@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-29 02:33+0000\n"
+"PO-Revision-Date: 2021-08-12 14:48+0000\n"
"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
@@ -81,7 +82,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.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -405,6 +406,7 @@ msgstr "Cambiar Modo Loop de Animación"
msgid "Remove Anim Track"
msgstr "Eliminar Pista de Animación"
+#. 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 "¿Crear nueva pista para %s e insertar clave?"
@@ -429,10 +431,28 @@ msgstr "Crear"
msgid "Anim Insert"
msgstr "Insertar Animación"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "No se puede abrir '%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 "Animación"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "Un AnimationPlayer no puede animarse a sí mismo, solo a otros players."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "No existe la propiedad '%s'."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Crear e Insertar Animación"
@@ -645,9 +665,8 @@ msgid "Go to Previous Step"
msgstr "Ir al Paso Anterior"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Resetear"
+msgstr "Aplicar Restablecer"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -666,9 +685,8 @@ msgid "Use Bezier Curves"
msgstr "Usar Curvas Bezier"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Pegar Pistas"
+msgstr "Crear pista(s) RESET"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -777,7 +795,7 @@ msgstr "%d coincidencias."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
-msgstr "Coincidir Mayús./Minús."
+msgstr "Distinguir mayúsculas y minúsculas"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
@@ -995,9 +1013,8 @@ msgid "Edit..."
msgstr "Editar..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "Ir Al Método"
+msgstr "Ir al Método"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -1015,9 +1032,9 @@ msgstr "Crear Nuevo %s"
msgid "No results for \"%s\"."
msgstr "No hay resultados para \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "No hay descripción disponible para %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1117,18 +1134,16 @@ msgid "Owners Of:"
msgstr "Propietarios De:"
#: editor/dependency_editor.cpp
-#, fuzzy
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 ""
-"¿Eliminar los archivos seleccionados del proyecto? (irreversible)\n"
-"Puedes encontrar los archivos eliminados en la papelera de reciclaje del "
-"sistema para restaurarlos."
+"¿Eliminar los archivos seleccionados del proyecto? (No se puede deshacer).\n"
+"Dependiendo de la configuración de su sistema de archivos, los archivos se "
+"moverán a la papelera del sistema o se eliminarán permanentemente."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1136,11 +1151,10 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"Otros recursos necesitan los archivos que estás intentando quitar para "
-"funcionar.\n"
-"¿Eliminarlos de todos modos? (irreversible)\n"
-"Puedes encontrar los archivos eliminados en la papelera de reciclaje del "
-"sistema para restaurarlos."
+"Otros recursos requieren los archivos que se eliminan para que funcionen.\n"
+"¿Eliminarlos de todos modos? (No se puede deshacer).\n"
+"Dependiendo de la configuración de su sistema de archivos, los archivos se "
+"moverán a la papelera del sistema o se eliminarán permanentemente."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1172,7 +1186,7 @@ msgstr "¡Errores al cargar!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr "¿Eliminar permanentemente %d ítem(s)? (¡No se puede deshacer!)"
+msgstr "¿Eliminar permanentemente %d elemento(s)? (¡No se puede deshacer!)"
#: editor/dependency_editor.cpp
msgid "Show Dependencies"
@@ -1310,41 +1324,39 @@ msgid "Licenses"
msgstr "Licencias"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Error al abrir el archivo del paquete (no está en formato ZIP)."
+msgstr ""
+"Error al abrir el archivo de assets para \"%s\" (no se encuentra en formato "
+"ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (Ya existe)"
+msgstr "%s (ya existe)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "El contenido del asset \"%s\" - %d entra en conflicto con el proyecto:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"Contenido del asset \"%s\" - No hay archivos en conflicto con el proyecto:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr "Descomprimiendo Assets"
+msgstr "Descomprimir Assets"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Los siguientes archivos no se pudieron extraer del paquete:"
+msgstr "Ha fallado la extracción de los siguientes archivos del asset \"%s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Y %d archivos más."
+msgstr "(y %s archivos más)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "¡Paquete instalado con éxito!"
+msgstr "¡El asset \"%s\" ha sido instalado con éxito!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1356,9 +1368,8 @@ msgid "Install"
msgstr "Instalar"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Instalador de paquetes"
+msgstr "Instalador de Assets"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1421,7 +1432,6 @@ msgid "Bypass"
msgstr "Omitir"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "Opciones de Bus"
@@ -1589,13 +1599,12 @@ msgid "Can't add autoload:"
msgstr "No se puede añadir un autoload:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
msgstr "El archivo no existe."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s es una ruta inválida. No está en la ruta del recurso (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1619,7 +1628,6 @@ msgid "Name"
msgstr "Nombre"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
msgstr "Variable"
@@ -1778,7 +1786,7 @@ msgstr "Editor de Script"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr "Biblioteca de Assets"
+msgstr "Librería de Assets"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
@@ -1798,48 +1806,54 @@ msgstr "Importación"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Permite ver y editar escenas 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Permite editar scripts utilizando el editor de scripts integrado."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Proporciona acceso integrado a la Librería de Assets."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Permite editar la jerarquía de nodos en el dock de Escena."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Permite trabajar con señales y grupos del nodo seleccionado en el dock de "
+"Escena."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
msgstr ""
+"Permite navegar por el sistema de archivos local a través de un dock "
+"dedicado."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Permite configurar los ajustes de importación para assets individuales. "
+"Requiere el dock FileSystem para funcionar."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Actual)"
+msgstr "(actual)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(ninguno)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
msgstr ""
+"¿Eliminar el perfil seleccionado en este momento, '%s'? No se puede deshacer."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1871,19 +1885,16 @@ msgid "Enable Contextual Editor"
msgstr "Activar el Editor Contextual"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Propiedades:"
+msgstr "Propiedades de Clase:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Características"
+msgstr "Características principales:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Clases Activadas:"
+msgstr "Clases y Nodos:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1903,7 +1914,6 @@ msgid "Error saving profile to path: '%s'."
msgstr "Error al guardar el perfil en la ruta: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
msgstr "Restablecer Valores por Defecto"
@@ -1912,14 +1922,12 @@ msgid "Current Profile:"
msgstr "Perfil Actual:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Borrar Perfil"
+msgstr "Crear perfil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Eliminar Tile"
+msgstr "Eliminar perfil"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1939,18 +1947,17 @@ msgid "Export"
msgstr "Exportar"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Perfil Actual:"
+msgstr "Configurar el perfil seleccionado:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Opciones de textura"
+msgstr "Opciones adicionales:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Crea o importa un perfil para editar las clases y propiedades disponibles."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1977,9 +1984,8 @@ msgid "Select Current Folder"
msgstr "Seleccionar Carpeta Actual"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "El archivo ya existe ¿Quieres sobreescribirlo?"
+msgstr "El archivo existe, ¿sobrescribirlo?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2105,11 +2111,11 @@ msgstr "Mostrar/Ocultar archivos ocultos."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails."
-msgstr "Ver ítems como una cuadrícula de miniaturas."
+msgstr "Ver elementos como una cuadrícula de miniaturas."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a list."
-msgstr "Ver ítems como una lista."
+msgstr "Ver elementos como una lista."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
@@ -2138,7 +2144,7 @@ msgstr ""
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr "(Re)Importando Assets"
+msgstr "(Re)Importación de Assets"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
@@ -2183,7 +2189,7 @@ msgstr "Métodos"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr "Propiedades de Temas"
+msgstr "Propiedades del Theme"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2260,7 +2266,7 @@ msgstr "Solo Propiedades"
#: editor/editor_help_search.cpp
msgid "Theme Properties Only"
-msgstr "Solo Propiedades del Tema"
+msgstr "Solo Propiedades del Theme"
#: editor/editor_help_search.cpp
msgid "Member Type"
@@ -2288,7 +2294,7 @@ msgstr "Propiedad"
#: editor/editor_help_search.cpp
msgid "Theme Property"
-msgstr "Propiedades del Tema"
+msgstr "Propiedades del Theme"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
@@ -2372,6 +2378,17 @@ msgid "New Window"
msgstr "Nueva Ventana"
#: 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 "Gira cuando la ventana del editor se redibuja."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Los recursos importados no se pueden guardar."
@@ -2604,13 +2621,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"La escena actual no tiene un nodo raíz, pero %d recurso(s) externo(s) "
+"modificado(s) fueron guardados igualmente."
#: 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 "Se necesita un nodo raíz para guardar la escena."
+msgstr ""
+"Se requiere un nodo raíz para guardar la escena. Puede agregar un nodo raíz "
+"utilizando el muelle de árbol de escenas."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2937,7 +2957,7 @@ msgstr "Convertir a..."
#: editor/editor_node.cpp
msgid "MeshLibrary..."
-msgstr "MeshLibrary..."
+msgstr "Biblioteca de malla..."
#: editor/editor_node.cpp
msgid "TileSet..."
@@ -2999,9 +3019,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Explorador de Recursos Huérfanos..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Renombrar Proyecto"
+msgstr "Recargar proyecto actual"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3163,22 +3182,20 @@ msgid "Help"
msgstr "Ayuda"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Abrir Documentación"
+msgstr "Documentación en línea"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Preguntas & Respuestas"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "Reportar un Bug"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "Establecer valor"
+msgstr "Sugerir una característica"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3189,9 +3206,8 @@ msgid "Community"
msgstr "Comunidad"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "Acerca de"
+msgstr "Sobre Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3243,10 +3259,6 @@ msgid "Save & Restart"
msgstr "Guardar y Reiniciar"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Gira cuando la ventana del editor se redibuja."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Actualizar Continuamente"
@@ -3289,14 +3301,12 @@ msgid "Manage Templates"
msgstr "Administrar Plantillas"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "Instalar Desde Archivo"
+msgstr "Instalar desde archivo"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Selecciona una Malla de Origen:"
+msgstr "Seleccionar el archivo fuente de Android"
#: editor/editor_node.cpp
msgid ""
@@ -3380,9 +3390,8 @@ msgid "Select"
msgstr "Seleccionar"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Seleccionar Carpeta Actual"
+msgstr "Seleccionar actual"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3398,7 +3407,7 @@ msgstr "Abrir Editor de Script"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr "Abrir Biblioteca de Assets"
+msgstr "Abrir Librería de Assets"
#: editor/editor_node.cpp
msgid "Open the next Editor"
@@ -3417,9 +3426,8 @@ msgid "No sub-resources found."
msgstr "No se encontró ningún sub-recurso."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "No se encontró ningún sub-recurso."
+msgstr "Abra una lista de sub-recursos."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3446,14 +3454,12 @@ msgid "Update"
msgstr "Actualizar"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Versión:"
+msgstr "Versión"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Autores"
+msgstr "Autor"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3466,14 +3472,12 @@ msgid "Measure:"
msgstr "Medida:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Duración de Fotogramas (seg)"
+msgstr "Duración de Fotogramas (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Tiempo Promedio (seg)"
+msgstr "Tiempo Promedio (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3500,6 +3504,12 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Inclusivo: Incluye el tiempo de otras funciones llamadas por esta función.\n"
+"Utilízalo para detectar cuellos de botella.\n"
+"\n"
+"Propio: Sólo contabiliza el tiempo empleado en la propia función, no en "
+"otras funciones llamadas por esa función.\n"
+"Utilízalo para buscar funciones individuales que optimizar."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3581,7 +3591,7 @@ msgstr "Página: "
#: editor/editor_properties_array_dict.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Item"
-msgstr "Eliminar Ítem"
+msgstr "Eliminar Elemento"
#: editor/editor_properties_array_dict.cpp
msgid "New Key:"
@@ -3622,7 +3632,6 @@ msgid "Paste"
msgstr "Pegar"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "Convertir a %s"
@@ -3674,11 +3683,10 @@ msgid "Did you forget the '_run' method?"
msgstr "Te olvidaste del método '_run'?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Mantén pulsado Ctrl para redondear a enteros. Mantén pulsado Shift para "
-"cambios más precisos."
+"Mantenga presionado %s para redondear a números enteros. Mantenga presionada "
+"la tecla Mayús para cambios más precisos."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3698,49 +3706,43 @@ msgstr "Importar Desde Nodo:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Abra la carpeta que contiene estas plantillas."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Desinstalar estas plantillas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "No hay ningún archivo `%s'."
+msgstr "No hay espejos disponibles."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Obteniendo mirrors, por favor espera..."
+msgstr "Recuperar la lista de espejos..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Comenzando la descarga..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Error al solicitar la URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "Conectando con Mirror...."
+msgstr "Conectando con el espejo..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "No se ha podido resolver el nombre de dominio:"
+msgstr "No se puede resolver la dirección solicitada."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "No se puede conectar al host:"
+msgstr "No se puede conectar al espejo."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "No hay respuesta desde el host:"
+msgstr "No hay respuesta del espejo."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3748,18 +3750,16 @@ msgid "Request failed."
msgstr "Petición fallida."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Petición fallida, demasiadas redirecciones"
+msgstr "La solicitud terminó en un bucle de redirección."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Petición fallida."
+msgstr "Petición fallida:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Descarga completa; extracción de plantillas..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3775,18 +3775,17 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Error getting the list of mirrors."
-msgstr "Error al obtener la lista de mirrors."
+msgstr "Error al obtener la lista de espejos."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr ""
-"Error al analizar el JSON de la lista de mirrors. ¡Por favor, informa de "
-"este problema!"
+"Error al analizar el JSON con la lista de espejos ¡Por favor, reporta este "
+"problema!"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "El mejor espejo disponible"
#: editor/export_template_manager.cpp
msgid ""
@@ -3839,22 +3838,18 @@ msgid "SSL Handshake Error"
msgstr "Error de Negociación SSL"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "No se puede abir el zip de plantillas de exportación."
+msgstr "No se puede abrir el archivo de plantillas de exportación."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
msgstr "Formato de version.txt inválido dentro de plantillas: %s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
msgstr "No se ha encontrado el archivo version.txt dentro de las plantillas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
msgstr "Error al crear ruta para las plantillas:"
@@ -3867,9 +3862,8 @@ msgid "Importing:"
msgstr "Importando:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "¿Eliminar plantilla versión '%s'?"
+msgstr "¿Eliminar plantilla de la versión '%s'?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3886,43 +3880,57 @@ msgstr "Versión Actual:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
msgstr ""
+"Faltan las plantillas de exportación. Puede descargarlas o instalarlas desde "
+"un archivo."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
msgstr ""
+"Las plantillas de exportación están instaladas y listas para ser utilizadas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "Abrir Archivo"
+msgstr "Abrir carpeta"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
msgstr ""
+"Abre la carpeta que contiene las plantillas instaladas para la versión "
+"actual."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Desinstalar"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Valor inicial para el contador"
+msgstr "Desinstalar las plantillas de la versión actual."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Error de descarga"
+msgstr "Descargar desde:"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Ejecutar en Navegador"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Copiar Error"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Descargar e instalar"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Descarga e instala las plantillas de la versión actual desde el mejor espejo "
+"posible."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3931,14 +3939,12 @@ msgstr ""
"versiones de desarrollo."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
-msgstr "Instalar Desde Archivo"
+msgstr "Instalar desde un archivo"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Importar plantillas desde un archivo ZIP"
+msgstr "Instalar plantillas desde un archivo local."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3946,23 +3952,20 @@ msgid "Cancel"
msgstr "Cancelar"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "No se puede abir el zip de plantillas de exportación."
+msgstr "Cancele la descarga de las plantillas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "Versiones Instaladas:"
+msgstr "Otras versiones instaladas:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Desinstalar"
+msgstr "Desinstalar plantilla"
#: editor/export_template_manager.cpp
msgid "Select Template File"
-msgstr "Selecciona un Archivo de Plantilla"
+msgstr "Seleccionar el archivo de la plantilla"
#: editor/export_template_manager.cpp
msgid "Godot Export Templates"
@@ -3973,6 +3976,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Las plantillas seguirán descargándose.\n"
+"Es posible que experimente una breve congelación del editor cuando terminen."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4120,35 +4125,32 @@ msgid "Collapse All"
msgstr "Colapsar Todo"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Buscar archivos"
+msgstr "Ordenar archivos"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Ordenar por Nombre (Ascendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Ordenar por Nombre (Descendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Ordenar por Tipo (Ascendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Ordenar por Tipo (Descendente)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Ultima Modificación"
+msgstr "Ordenar por Última Modificación"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Ultima Modificación"
+msgstr "Ordenar por Primera Modificación"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4160,7 +4162,7 @@ msgstr "Renombrar..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Enfocar el cuadro de búsqueda"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4461,22 +4463,20 @@ msgstr "Cambiar el tipo de un archivo importado requiere reiniciar el editor."
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
-"ADVERTENCIA: Existen recursos que utilizan este recurso, pueden dejar de "
-"cargar correctamente."
+"ADVERTENCIA: Existen assets que utilizan este recurso, pueden dejar de "
+"cargarse correctamente."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Error al cargar el recurso."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Propiedades"
+msgstr "Copiar Propiedades"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Propiedades"
+msgstr "Pegar Propiedades"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4501,23 +4501,20 @@ msgid "Save As..."
msgstr "Guardar como..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "No está en la ruta de recursos."
+msgstr "Opciones de recursos extra."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Editar Portapapeles de Recursos"
+msgstr "Editar Recurso desde el Portapapeles"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "Copiar Recurso"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "Crear Integrado"
+msgstr "Crear Recursos Integrados"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4532,9 +4529,8 @@ msgid "History of recently edited objects."
msgstr "Historial de objetos recientemente editados."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Abrir Documentación"
+msgstr "Abrir la documentación de este objeto."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4545,9 +4541,8 @@ msgid "Filter properties"
msgstr "Filtrar propiedades"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Propiedades del objeto."
+msgstr "Administrar propiedades de los objetos."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4793,9 +4788,8 @@ msgid "Blend:"
msgstr "Mezcla:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parámetro Modificado"
+msgstr "Parámetro Modificado:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5445,7 +5439,7 @@ msgstr "Fallo en la comprobación del hash SHA-256"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr "Error en la descarga del asset:"
+msgstr "Error de Descarga de Assets:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
@@ -5481,7 +5475,7 @@ msgstr "Error de descarga"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr "¡Éste asset ya está descargándose!"
+msgstr "¡La descarga de este asset ya está en proceso!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
@@ -5529,11 +5523,11 @@ msgstr "Todos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Buscar plantillas, proyectos y demostraciones"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Buscar assets (excluyendo plantillas, proyectos y demos)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5573,11 +5567,11 @@ msgstr "Cargar..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr "Archivo ZIP de elementos"
+msgstr "Archivo ZIP de assets"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Previsualización de Audio Reproducir/Pausar"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5838,13 +5832,13 @@ msgstr "Cambiar Anclas"
#: 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 ""
-"Reemplazar Cámara del Juego\n"
-"Reemplaza la cámara del juego por la cámara del viewport del editor."
+"Anulación de la Cámara del Proyecto\n"
+"Anula la cámara del proyecto en ejecución por la cámara del viewport del "
+"editor."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5853,6 +5847,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"Anulación de la Cámara del Proyecto\n"
+"No se está ejecutando ninguna instancia del proyecto. Ejecuta el proyecto "
+"desde el editor para utilizar esta función."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5920,32 +5917,27 @@ msgstr "Modo de Selección"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Eliminar el nodo o transición seleccionado/a."
+msgstr "Arrastrar: Girar el nodo seleccionado alrededor del pivote."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Arrastrar: Mover"
+msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Eliminar el nodo o transición seleccionado/a."
+msgstr "V: Establecer la posición de pivote del nodo seleccionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Mostrar una lista de todos los objetos en la posición en la que se ha hecho "
-"clic\n"
-"(igual que Alt + Clic Derecho en modo selección)."
+"Alt + RMB: Muestra la lista de todos los nodos en la posición en la que se "
+"hizo clic, incluido el bloqueado."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "RMB: Añade un nodo en la posición seleccionada."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6184,14 +6176,12 @@ msgid "Clear Pose"
msgstr "Limpiar Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "Añadir Nodo"
+msgstr "Añadir Nodo Aquí"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Instanciar Escena(s)"
+msgstr "Instanciar Escena Aquí"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6207,49 +6197,43 @@ msgstr "Vista Panorámica"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Zoom al 3,125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Zoom al 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Zoom al 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Alejar Zoom"
+msgstr "Zoom al 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Alejar Zoom"
+msgstr "Zoom al 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Alejar Zoom"
+msgstr "Zoom al 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Alejar Zoom"
+msgstr "Zoom al 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Alejar Zoom"
+msgstr "Zoom al 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Alejar Zoom"
+msgstr "Zoom al 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Zoom al 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6451,15 +6435,15 @@ msgstr "Degradado Editado"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr "Ítem %d"
+msgstr "Elemento %d"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr "Ítems"
+msgstr "Elementos"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr "Editor de Lista de Ítems"
+msgstr "Editor de Lista de Elementos"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
@@ -6496,9 +6480,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "No pudo crear una única forma de colisión convexa."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "Crear una Única Forma Convexa"
+msgstr "Crear Forma Convexa Simplificada"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6535,9 +6518,8 @@ msgid "No mesh to debug."
msgstr "No hay mallas para depurar."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "El modelo no tiene UV en esta capa"
+msgstr "La malla no tiene UV en la capa %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6602,9 +6584,8 @@ msgstr ""
"Es la opción más rápida (pero menos precisa) para la detección de colisiones."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "Crear Collider Convexo Único Hermano"
+msgstr "Crear Forma de Colisión Conexa Hermana"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6612,20 +6593,23 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Crea una forma de colisión convexa simplificada.\n"
+"Esto es similar a la forma de colisión simple, pero puede resultar en una "
+"geometría más simple en algunos casos, a costa de la precisión."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
msgstr "Crear Múltiples Collider Convexos Hermanos"
#: 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 ""
"Crea una forma de colisión basada en polígonos.\n"
-"Este es un punto medio de rendimiento entre las dos opciones anteriores."
+"Se trata de un punto intermedio de rendimiento entre una colisión convexa "
+"única y una colisión basada en polígonos."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -6669,7 +6653,7 @@ msgstr "Depuración del Canal UV"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr "¿Eliminar el ítem %d?"
+msgstr "¿Eliminar el elemento %d?"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid ""
@@ -6685,11 +6669,11 @@ msgstr "Librería de Mallas"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Add Item"
-msgstr "Añadir Ítem"
+msgstr "Añadir Elemento"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr "Eliminar Ítem Seleccionado"
+msgstr "Eliminar Elemento Seleccionado"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Import from Scene"
@@ -6742,7 +6726,7 @@ msgstr "El origen de la superficie no es correcto (sin caras)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Source Mesh:"
-msgstr "Selecciona una Malla de Origen:"
+msgstr "Seleccionar una Malla de Origen:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Target Surface:"
@@ -7275,24 +7259,20 @@ msgid "ResourcePreloader"
msgstr "Precargador de Recursos"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Voltear Horizontalmente"
+msgstr "Voltear Portales"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Conteo de Puntos Generados:"
+msgstr "Generar Puntos en la Room"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Conteo de Puntos Generados:"
+msgstr "Generar puntos"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Voltear Horizontalmente"
+msgstr "Voltear Portal"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7324,7 +7304,7 @@ msgstr "¡Error guardando archivo!"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme."
-msgstr "Error al guardar el tema."
+msgstr "Error al guardar el theme."
#: editor/plugins/script_editor_plugin.cpp
msgid "Error Saving"
@@ -7332,7 +7312,7 @@ msgstr "Error al Guardar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme."
-msgstr "Error al importar el tema."
+msgstr "Error al importar el theme."
#: editor/plugins/script_editor_plugin.cpp
msgid "Error Importing"
@@ -7371,11 +7351,11 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr "Importar Tema"
+msgstr "Importar Theme"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr "Error al guardar el tema"
+msgstr "Error al guardar el theme"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
@@ -7383,7 +7363,7 @@ msgstr "Error al guardar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As..."
-msgstr "Guardar Tema Como..."
+msgstr "Guardar Theme Como..."
#: editor/plugins/script_editor_plugin.cpp
msgid "%s Class Reference"
@@ -7470,19 +7450,19 @@ msgstr "Siguiente en el Historial"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme"
-msgstr "Tema"
+msgstr "Theme"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme..."
-msgstr "Importar Tema..."
+msgstr "Importar Theme..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
-msgstr "Recargar Tema"
+msgstr "Recargar Theme"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme"
-msgstr "Guardar Tema"
+msgstr "Guardar Theme"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close All"
@@ -7855,20 +7835,17 @@ msgid "None"
msgstr "Ninguno"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Estado:"
+msgstr "Rotar"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Trasladar:"
+msgstr "Mover"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Escala:"
+msgstr "Escala"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7891,52 +7868,44 @@ msgid "Animation Key Inserted."
msgstr "Clave de animación insertada."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Altura"
+msgstr "Eje de paso:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Eje de guiñada:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Tamaño: "
+msgstr "Tamaño:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Objetos Dibujados"
+msgstr "Objetos Dibujados:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Cambios del Material"
+msgstr "Cambios del Material:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Cambios del Shader"
+msgstr "Cambios de sombreado:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Cambios de Superficie"
+msgstr "Cambios de superficie:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Llamadas de Dibujado"
+msgstr "Llamadas de Dibujado:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Vértices"
+msgstr "Vértices:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -8091,9 +8060,8 @@ msgid "Freelook Slow Modifier"
msgstr "Modificador de Velocidad de Vista Libre"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "Cambiar Tamaño de Cámara"
+msgstr "Alternar Vista Previa de la Cámara"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8115,9 +8083,8 @@ msgstr ""
"No se puede utilizar como un indicador fiable del rendimiento en el juego."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Convertir a %s"
+msgstr "Convertir Rooms"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8139,7 +8106,6 @@ msgstr ""
"opacas (\"x-ray\")."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Ajustar Nodos al Suelo"
@@ -8157,7 +8123,7 @@ msgstr "Usar Snap"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Convertir rooms para eliminar portales."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8253,9 +8219,8 @@ msgid "View Grid"
msgstr "Ver Cuadrícula"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Configuración de ventanilla"
+msgstr "Ver Eliminación de Portales"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8576,221 +8541,196 @@ msgid "TextureRegion"
msgstr "Región de Textura"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Color"
+msgstr "Colores"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Tipografía"
+msgstr "Fonts"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Icono"
+msgstr "Icons"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "Caja de estilos"
+msgstr "Styleboxes"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} color(es)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "No se encontró ningún sub-recurso."
+msgstr "No se encontraron colores."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Constantes"
+msgstr "{num} constant(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Constante de color."
+msgstr "No se encontraron constants."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} font(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "¡No se ha encontrado!"
+msgstr "No se han encontrado fonts."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} icon(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "¡No se ha encontrado!"
+msgstr "No se han encontrado icons."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} stylebox(es)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "No se encontró ningún sub-recurso."
+msgstr "No se encontraron styleboxes."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} seleccionado actualmente"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "No se ha seleccionado nada para la importación."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Importar Tema"
+msgstr "Importar Elementos del Theme"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Importación de elementos {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "¿Salir del editor?"
+msgstr "Actualización del editor"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "Analizando"
+msgstr "Finalizando"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Filtro: "
+msgstr "Filtro:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "Con Datos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Selecciona un Nodo"
+msgstr "Seleccionar por tipo de datos:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Selecciona una división para borrarla."
+msgstr "Seleccionar todos los elementos color visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Seleccionar todos los elementos color visibles y sus datos."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Deseleccionar todos los elementos color visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "¡Selecciona un ítem primero!"
+msgstr "Seleccionar todos elementos constant visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Seleccionar todos los elementos constant visibles y sus datos."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Deseleccionar todos los elementos constant visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "¡Selecciona un ítem primero!"
+msgstr "Seleccionar todos los elementos font visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "Seleccionar todos los elementos font visibles y sus datos."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Deseleccionar todos los elementos font visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "¡Selecciona un ítem primero!"
+msgstr "Seleccionar todos los elementos icon visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "¡Selecciona un ítem primero!"
+msgstr "Seleccionar todos los elementos icon visibles y sus datos."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "¡Selecciona un ítem primero!"
+msgstr "Deseleccionar todos los elementos icon visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Seleccionar todos los elementos stylebox visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "Seleccionar todos los elementos stylebox visibles y sus datos."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "Deseleccionar todos los elementos stylebox visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"Precaución: Añadir datos de iconos puede aumentar considerablemente el "
+"tamaño de su recurso Theme."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Colapsar Todo"
+msgstr "Tipos de colapso."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Expandir Todo"
+msgstr "Expandir tipos."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Selecciona un Archivo de Plantilla"
+msgstr "Seleccionar todos los elementos del Theme."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Seleccionar Puntos"
+msgstr "Seleccionar Con Datos"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Seleccionar todos los elementos del Theme con los datos del elemento."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Seleccionar Todo"
+msgstr "Deseleccionar Todo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Deseleccionar todos los elementos del Theme."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Importar Escena"
+msgstr "Importar Seleccionado"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8798,271 +8738,248 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"En la pestaña de Elementos de Importación se han seleccionado algunos "
+"elementos. La selección se perderá al cerrar esta ventana.\n"
+"¿Cerrar de todos modos?"
+
+#: 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
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Eliminar Todos los Ítems"
+msgstr "Eliminar Todos los Elementos de Color"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Eliminar Ítem"
+msgstr "Cambiar Nombre de Elemento"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Eliminar Todos los Ítems"
+msgstr "Eliminar Todos los Elementos Constant"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Eliminar Todos los Ítems"
+msgstr "Eliminar Todos los Elementos Font"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Eliminar Todos los Ítems"
+msgstr "Eliminar Todos los Elementos de Iconos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Eliminar Todos los Ítems"
+msgstr "Eliminar Todos los Elementos de StyleBox"
+
+#: 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
-#, fuzzy
msgid "Add Color Item"
-msgstr "Añadir Clases de Ítems"
+msgstr "Añadir Elemento Color"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Añadir Clases de Ítems"
+msgstr "Añadir Elemento Constant"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Añadir Ítem"
+msgstr "Añadir Elemento Font"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Añadir Ítem"
+msgstr "Añadir Elemento Icono"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Añadir Todos los Ítems"
+msgstr "Añadir Elemento Stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Eliminar Clases de Ítems"
+msgstr "Cambiar Nombre del Elemento Color"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Eliminar Clases de Ítems"
+msgstr "Cambiar Nombre del Elemento Constant"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Renombrar Nodo"
+msgstr "Renombrar Elemento Font"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Renombrar Nodo"
+msgstr "Renombrar Elemento Icon"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Eliminar Ítem Seleccionado"
+msgstr "Renombrar Elemento Stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Archivo inválido. No es un layout de bus de audio."
+msgstr "Archivo inválido, no es un recurso del Theme."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Archivo inválido, igual que el recurso del Theme editado."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Administrar Plantillas"
+msgstr "Administrar Elementos del Theme"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Ítem Editable"
+msgstr "Editar Elementos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Tipo:"
+msgstr "Tipos:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Tipo:"
+msgstr "Añadir Tipo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Añadir Ítem"
+msgstr "Añadir Elemento:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Añadir Todos los Ítems"
+msgstr "Añadir Elemento StyleBox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Eliminar Ítem"
+msgstr "Eliminar Elemento:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr "Eliminar Clases de Ítems"
+msgstr "Eliminar Clases de Elementos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Eliminar Clases de Ítems"
+msgstr "Eliminar Elementos Personalizados"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
-msgstr "Eliminar Todos los Ítems"
+msgstr "Eliminar Todos los Elementos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Elementos del tema de interfaz"
+msgstr "Añadir Elemento del Theme"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Nombre del Nodo:"
+msgstr "Nombre Antiguo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Importar Tema"
+msgstr "Importar Elementos"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Predeterminado"
+msgstr "Theme Predeterminado"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Editar Tema"
+msgstr "Editor de Themes"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Eliminar Recurso"
+msgstr "Seleccionar Otro Recurso del Theme:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Importar Tema"
+msgstr "Otro Theme"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Renombrar pista de animación"
+msgstr "Confirmar Cambio de Nombre del Elemento"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Renombrar por lote"
+msgstr "Cancelar Cambio de Nombre del Elemento"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Anulaciones"
+msgstr "Elemento de Anulación"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "Quitar este StyleBox como estilo principal."
#: 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 ""
+"Establecer este StyleBox como un estilo principal. La edición de sus "
+"propiedades actualizará las mismas propiedades en todos los demás StyleBoxes "
+"de este tipo."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "Tipo"
+msgstr "Añadir Tipo"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Añadir Ítem"
+msgstr "Añadir Tipo de Elemento"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Tipo de nodo"
+msgstr "Tipo de nodo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Cargar Valores por Defecto"
+msgstr "Mostrar Por Defecto"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
msgstr ""
+"Mostrar los elementos de tipo por defecto junto a los elementos que han sido "
+"anulados."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Anulaciones"
+msgstr "Anular Todo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "Anular todos los elementos de tipo por defecto."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Tema"
+msgstr "Theme:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "Administrar Plantillas de Exportación..."
+msgstr "Administrar Elementos..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "Añadir, eliminar, organizar e importar elementos del Theme."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Vista Previa"
+msgstr "Añadir Vista Previa"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Actualizar Vista Previa"
+msgstr "Vista Previa Por Defecto"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Selecciona una Malla de Origen:"
+msgstr "Seleccionar Escena UI:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
+"Activar el selector de controles, lo que permite seleccionar visualmente los "
+"tipos de control para su edición."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
@@ -9074,32 +8991,31 @@ msgstr "Botón Desactivado"
#: editor/plugins/theme_editor_preview.cpp
msgid "Item"
-msgstr "Ítem"
+msgstr "Elemento"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled Item"
-msgstr "Desactivar Ítem"
+msgstr "Desactivar Elemento"
#: editor/plugins/theme_editor_preview.cpp
msgid "Check Item"
-msgstr "Activar Ítem"
+msgstr "Activar Elemento"
#: editor/plugins/theme_editor_preview.cpp
msgid "Checked Item"
-msgstr "Ítem Activado"
+msgstr "Elemento Activado"
#: editor/plugins/theme_editor_preview.cpp
msgid "Radio Item"
-msgstr "Radio Ítem"
+msgstr "Radio Elemento"
#: editor/plugins/theme_editor_preview.cpp
msgid "Checked Radio Item"
-msgstr "Radio Ítem Activo"
+msgstr "Radio Elemento Activo"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Separador con nombre."
+msgstr "Separador con nombre"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9107,11 +9023,11 @@ msgstr "Submenú"
#: editor/plugins/theme_editor_preview.cpp
msgid "Subitem 1"
-msgstr "Subítem 1"
+msgstr "Subelemento 1"
#: editor/plugins/theme_editor_preview.cpp
msgid "Subitem 2"
-msgstr "Subítem 2"
+msgstr "Subelemento 2"
#: editor/plugins/theme_editor_preview.cpp
msgid "Has"
@@ -9139,7 +9055,7 @@ msgstr "Tab 3"
#: editor/plugins/theme_editor_preview.cpp
msgid "Editable Item"
-msgstr "Ítem Editable"
+msgstr "Elemento Editable"
#: editor/plugins/theme_editor_preview.cpp
msgid "Subtree"
@@ -9152,19 +9068,19 @@ msgstr "Tienes, muchas, opciones"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
msgstr ""
+"Ruta inválida, el recurso PackedScene probablemente fue movido o eliminado."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
-msgstr ""
+msgstr "Recurso PackedScene inválido, debe tener un nodo Control en raíz."
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "Archivo inválido. No es un layout de bus de audio."
+msgstr "Archivo inválido, no es un recurso PackedScene."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "Recargar la escena para reflejar su estado actual."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -10569,9 +10485,8 @@ msgid "VisualShader"
msgstr "VisualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Editar Propiedad Visual"
+msgstr "Editar Propiedad Visual:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10698,9 +10613,8 @@ msgid "Script"
msgstr "Script"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Modo de exportación de scripts:"
+msgstr "Modo de Exportación GDScript:"
#: editor/project_export.cpp
msgid "Text"
@@ -10708,21 +10622,20 @@ msgstr "Texto"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Bytecode Compilado (Carga Más Rápida)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "Encriptado (Proveer la Clave Debajo)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "Llave de Encriptación Inválida (debe tener 64 caracteres de largo)"
+msgstr ""
+"Llave de Encriptación Inválida (debe tener 64 caracteres hexadecimales)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "Clave de cifrado de scripts (256-bits en hexadecimal):"
+msgstr "Llave de Encriptación GDScript (256-bits en hexadecimal):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10796,7 +10709,6 @@ msgid "Imported Project"
msgstr "Proyecto Importado"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Nombre de Proyecto Inválido."
@@ -11015,7 +10927,7 @@ msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
-"No se puede ejecutar el proyecto: los assets necesitan ser importados.\n"
+"No se puede ejecutar el proyecto: Los assets necesitan ser importados.\n"
"Por favor, edita el proyecto para activar el importado inicial."
#: editor/project_manager.cpp
@@ -11023,14 +10935,12 @@ msgid "Are you sure to run %d projects at once?"
msgstr "¿Estás seguro de que vas a ejecutar %d proyectos a la vez?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "Seleccionar dispositivo de la lista"
+msgstr "¿Quitar %d proyectos de la lista?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Seleccionar dispositivo de la lista"
+msgstr "¿Quitar este proyecto de la lista?"
#: editor/project_manager.cpp
msgid ""
@@ -11064,9 +10974,8 @@ msgid "Project Manager"
msgstr "Administrador de Proyectos"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Proyectos"
+msgstr "Proyectos Locales"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11077,23 +10986,20 @@ msgid "Last Modified"
msgstr "Ultima Modificación"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Exportar Proyecto"
+msgstr "Editar Proyecto"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Renombrar Proyecto"
+msgstr "Reproducir Proyecto"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "Escanear"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Proyectos"
+msgstr "Escanear Proyectos"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -11104,14 +11010,12 @@ msgid "New Project"
msgstr "Nuevo Proyecto"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Proyecto Importado"
+msgstr "Importar Proyecto"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Renombrar Proyecto"
+msgstr "Eliminar Proyecto"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11122,9 +11026,8 @@ msgid "About"
msgstr "Acerca de"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Biblioteca de Assets"
+msgstr "Proyectos de la Librería de Assets"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11136,7 +11039,7 @@ msgstr "Eliminar Todos"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "También eliminar el contenido del proyecto (¡no se puede deshacer!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11148,24 +11051,22 @@ msgid ""
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
"Actualmente no tienes ningún proyecto.\n"
-"¿Quieres explorar proyectos de ejemplo oficiales en la Biblioteca de Assets?"
+"¿Quieres explorar proyectos de ejemplo oficiales en la Librería de Assets?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Filtrar propiedades"
+msgstr "Filtrar proyectos"
#: editor/project_manager.cpp
-#, fuzzy
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 ""
-"La casilla de búsqueda filtra los proyectos por nombre y el último "
-"componente de la ruta.\n"
-"Para filtrar los proyectos por nombre y ruta completa, la consulta debe "
-"contener al menos un carácter `/`."
+"Este campo filtra los proyectos por nombre y por el último componente de la "
+"ruta.\n"
+"Para filtrar proyectos por nombre y ruta completa, la consulta debe contener "
+"al menos un carácter `/`."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -11173,7 +11074,7 @@ msgstr "Tecla "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "Tecla Física"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11221,7 +11122,7 @@ msgstr "Dispositivo"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (Física)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11321,7 +11222,7 @@ msgstr "Añadir Propiedad Global"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
-msgstr "¡Selecciona un ítem primero!"
+msgstr "¡Selecciona un elemento primero!"
#: editor/project_settings_editor.cpp
msgid "No property '%s' exists."
@@ -11333,7 +11234,7 @@ msgstr "El ajuste '%s' es interno y no puede ser eliminado."
#: editor/project_settings_editor.cpp
msgid "Delete Item"
-msgstr "Eliminar Ítem"
+msgstr "Eliminar Elemento"
#: editor/project_settings_editor.cpp
msgid ""
@@ -11364,23 +11265,20 @@ msgid "Override for Feature"
msgstr "Anulación de la Característica"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Añadir Traducción"
+msgstr "Añadir %d Traducciones"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "Eliminar Traducción"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "Añadir Remapeo de Recursos"
+msgstr "Remapeo de Recursos de Traducción: Añadir %d Ruta(s)"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "Añadir Remapeo de Recursos"
+msgstr "Remapeo de Recursos de Traducción: Añadir %d Remapeo(s)"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11825,12 +11723,16 @@ msgstr "¿Eliminar nodo \"%s\"?"
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
msgstr ""
+"Guardar la rama como una escena requiere tener una escena abierta en el "
+"editor."
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires selecting only one node, but you have "
"selected %d nodes."
msgstr ""
+"Guardar la rama como una escena requiere seleccionar sólo un nodo, pero has "
+"seleccionado %d nodos."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11839,6 +11741,11 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"No se puede guardar la rama del nodo raíz como una escena instanciada.\n"
+"Para crear una copia editable de la escena actual, duplícala usando el menú "
+"contextual del dock Sistema de Archivos\n"
+"o crea una escena heredada usando Escena > Nueva Escena Heredada... en su "
+"lugar."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11846,6 +11753,10 @@ msgid ""
"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 ""
+"No se puede guardar la rama de una escena ya instanciada.\n"
+"Para crear una variación de una escena, puedes hacer una escena heredada "
+"basada en la escena instanciada usando Escena > Nueva Escena Heredada... en "
+"su lugar."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12254,6 +12165,8 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"Advertencia: No es recomendable que el nombre del script sea el mismo que el "
+"de un tipo integrado."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12325,7 +12238,7 @@ msgstr "Copiar Error"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "Código Abierto C++ en GitHub"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12369,7 +12282,7 @@ msgstr "Monitores"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
-msgstr "Elige uno o más ítems de la lista para mostrar el gráfico."
+msgstr "Elige uno o más elementos de la lista para mostrar el gráfico."
#: editor/script_editor_debugger.cpp
msgid "List of Video Memory Usage by Resource:"
@@ -12503,6 +12416,16 @@ msgstr "Cambiar Altura de la Forma del Cilindro"
msgid "Change Ray Shape Length"
msgstr "Cambiar Longitud de la Forma del Rayo"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Establecer Posición de Punto de Curva"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Establecer Posición de Punto de Curva"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Cambiar Radio de Cylinder"
@@ -12616,14 +12539,12 @@ msgid "Object can't provide a length."
msgstr "El objeto no puede proporcionar una longitud."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "Exportar Librería de Mallas"
+msgstr "Exportar Malla GLTF2"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Exportar…"
+msgstr "Exportar GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12666,9 +12587,8 @@ msgid "GridMap Paint"
msgstr "Pintar GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "Rellenar Selección en GridMap"
+msgstr "Seleccionar GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12922,14 +12842,12 @@ msgid "Add Output Port"
msgstr "Añadir Puerto de Salida"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "Cambiar Tipo"
+msgstr "Cambiar Tipo de Puerto"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "Cambiar nombre del puerto de entrada"
+msgstr "Cambiar Nombre de Puerto"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -13044,9 +12962,8 @@ msgid "Add Preload Node"
msgstr "Añadir Nodo Preload"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "Añadir Nodo"
+msgstr "Añadir Nodo(s)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -13313,37 +13230,31 @@ msgstr "Seleccionar dispositivo de la lista"
#: platform/android/export/export.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "Ejecutar en %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting APK..."
-msgstr "Exportar Todo"
+msgstr "Exportar APK..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Uninstalling..."
-msgstr "Desinstalar"
+msgstr "Desinstalando..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Installing to device, please wait..."
-msgstr "Cargando, espera por favor..."
+msgstr "Instalando en el dispositivo, espera por favor..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not install to device: %s"
-msgstr "¡No se pudo instanciar la escena!"
+msgstr "No se pudo instalar en el dispositivo: %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Running on device..."
-msgstr "Ejecutando Script Personalizado..."
+msgstr "Ejecutando en el dispositivo..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not execute on device."
-msgstr "No se pudo crear la carpeta."
+msgstr "No se ha podido ejecutar en el dispositivo."
#: platform/android/export/export.cpp
msgid "Unable to find the 'apksigner' tool."
@@ -13473,45 +13384,43 @@ msgid ""
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"No se ha encontrado 'apksigner'.\n"
+"Por favor, compruebe que el comando está disponible en el directorio Android "
+"SDK build-tools.\n"
+"El resultado %s es sin firma."
#: platform/android/export/export.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "Firma de depuración %s..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Signing release %s..."
-msgstr ""
-"Escaneando archivos,\n"
-"Por favor, espere..."
+msgstr "Firmando liberación %s..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not find keystore, unable to export."
-msgstr "No se pudo abrir la plantilla para exportar:"
+msgstr "No se pudo encontrar la keystore, no se puedo exportar."
#: platform/android/export/export.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "'apksigner' ha retornado con error #%d"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Verifying %s..."
-msgstr "Añadiendo %s..."
+msgstr "Verificando %s..."
#: platform/android/export/export.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "La verificación de 'apksigner' de %s ha fallado."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting for Android"
-msgstr "Exportar Todo"
+msgstr "Exportando para Android"
#: platform/android/export/export.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
-"¡Nombre de archivo inválido! Android App Bundle requiere la extensión *.aab."
+"¡Nombre del archivo inválido! Android App Bundle requiere la extensión *.aab."
#: platform/android/export/export.cpp
msgid "APK Expansion not compatible with Android App Bundle."
@@ -13523,7 +13432,7 @@ msgstr "¡Nombre de archivo inválido! Android APK requiere la extensión *.apk.
#: platform/android/export/export.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "¡Formato de exportación no compatible!\n"
#: platform/android/export/export.cpp
msgid ""
@@ -13551,16 +13460,16 @@ msgstr ""
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"No se puede sobrescribir los archivos res://android/build/res/*.xml con el "
+"nombre del proyecto"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr "No se encontró project.godot en la ruta del proyecto."
+msgstr "No se pueden exportar los archivos del proyecto a un proyecto gradle\n"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not write expansion package file!"
-msgstr "No se puede escribir en el archivo:"
+msgstr "¡No se pudo escribir el archivo del paquete de expansión!"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -13588,21 +13497,20 @@ msgstr ""
"directorio del proyecto de gradle para ver los resultados."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Package not found: %s"
-msgstr "No se encontró la animación: '%s'"
+msgstr "Paquete no encontrado:% s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Creating APK..."
-msgstr "Creando contornos..."
+msgstr "Creando APK..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "No se pudo abrir la plantilla para exportar:"
+msgstr ""
+"No se pudo encontrar la plantilla APK para exportar:\n"
+"%s"
#: platform/android/export/export.cpp
msgid ""
@@ -13611,16 +13519,18 @@ msgid ""
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"Faltan bibliotecas en la plantilla de exportación para las arquitecturas "
+"seleccionadas: %s.\n"
+"Por favor, construya una plantilla con todas las bibliotecas necesarias, o "
+"desmarque las arquitecturas que faltan en el preajuste de exportación."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Adding files..."
-msgstr "Añadiendo %s..."
+msgstr "Añadiendo archivos ..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files"
-msgstr "No se puede escribir en el archivo:"
+msgstr "No se pudieron exportar los archivos del proyecto"
#: platform/android/export/export.cpp
msgid "Aligning APK..."
@@ -13628,15 +13538,15 @@ msgstr "Alineando APK..."
#: platform/android/export/export.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "No se pudo descomprimir el APK no alineado temporal."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
-msgstr "Identificador no encontrado."
+msgstr "Falta el identificador."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "The character '%s' is not allowed in Identifier."
-msgstr "El carácter '%s' no esta permitido como identificador."
+msgstr "El carácter '% s' no está permitido en el Identificador."
#: platform/iphone/export/export.cpp
msgid "App Store Team ID not specified - cannot configure the project."
@@ -13676,45 +13586,40 @@ msgid "Could not write file:"
msgstr "No se puede escribir en el archivo:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "No se puede escribir en el archivo:"
+msgstr "No se pudo leer el archivo:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "No se puede leer shell HTML personalizada:"
+msgstr "No se pudo leer el shell HTML:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "No se pudo crear la carpeta."
+msgstr "No se pudo crear el directorio del servidor HTTP:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Error al guardar escena."
+msgstr "Error al iniciar el servidor HTTP:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Identificador inválido:"
+msgstr "Identificador de paquete no válido:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "Notarización: se requiere firma de código."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "Notarización: se requiere tiempo de ejecución reforzado."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "Notarización: nombre de ID de Apple no especificado."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "Notarización: contraseña de ID de Apple no especificada."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14162,6 +14067,9 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"La propiedad Compress de GIProbe ha quedado obsoleta debido a errores "
+"conocidos y ya no tiene ningún efecto.\n"
+"Para eliminar esta advertencia, desactiva la propiedad Compress de GIProbe."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14253,15 +14161,15 @@ msgstr "El nodo A y el nodo B deben ser diferentes PhysicsBody"
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "El RoomManager no debe ser hijo o nieto de un Portal."
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Una Room no debe ser hijo o nieto de un Portal."
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Un RoomGroup no debe ser hijo o nieto de un Portal."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -14273,42 +14181,83 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
-msgstr ""
+msgstr "Una Room no puede tener otra Room como hija o nieta."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "El RoomManager no debe ubicarse dentro de una Room."
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "Un RoomGroup no debe colocarse dentro de una Room."
#: 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 ""
+"El cuerpo convexo de la room contiene un gran número de planos.\n"
+"Considera la posibilidad de simplificar los límites de la room para aumentar "
+"el rendimiento."
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "El RoomManager no debe colocarse dentro de un RoomGroup."
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "La RoomList no ha sido asignada."
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
-msgstr ""
+msgstr "El nodo RoomList debe ser un Spatial (o derivado de Spatial)."
#: 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 ""
+"El Límite de Profundidad del Portal está ajustado a cero.\n"
+"Sólo se renderizará la room en la que se encuentra la cámara."
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
+msgstr "Sólo debe haber un RoomManager en el SceneTree."
+
+#: 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
@@ -14375,7 +14324,7 @@ msgstr "No se encontró la animación: '%s'"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "Aplicar Reset de la Animación"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14553,25 +14502,30 @@ msgid "Invalid comparison function for that type."
msgstr "Función de comparación inválida para este tipo."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Solo se pueden asignar variaciones en funciones de vértice."
+msgstr "No se puede asignar la variable en la función '%s'."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"Las variaciones asignadas en función 'vértice' no pueden reasignarse en "
+"'fragmento' o 'luz'."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"Varyings Cuál asignó en 'fragmento' la función no puede ser reasignada en "
+"'vértice' o 'ligero'."
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
msgstr ""
+"¡No se pudo acceder a la variación de la etapa de fragmento en la función "
+"personalizada!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -15771,9 +15725,6 @@ msgstr "Las constantes no pueden modificarse."
#~ msgid "I see..."
#~ msgstr "Ya veo..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "No se puede abrir '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Vaya"
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 53041c74fd..d5c955a347 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-29 02:33+0000\n"
+"PO-Revision-Date: 2021-08-06 06:47+0000\n"
"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/"
"godot-engine/godot/es_AR/>\n"
@@ -30,7 +30,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.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -353,6 +353,7 @@ msgstr "Cambiar Modo de Bucle de Animación"
msgid "Remove Anim Track"
msgstr "Quitar pista de animación"
+#. 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 "Crear NUEVO track para %s e insertar clave?"
@@ -377,10 +378,28 @@ msgstr "Crear"
msgid "Anim Insert"
msgstr "Insertar Anim"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "No se puede abrir '%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 "Animación"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "Un AnimationPlayer no puede animarse a sí mismo, solo a otros players."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "No existe la propiedad '%s'."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Crear e Insertar Animación"
@@ -591,9 +610,8 @@ msgid "Go to Previous Step"
msgstr "Ir a Paso Previo"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Resetear"
+msgstr "Aplicar Reset"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -612,9 +630,8 @@ msgid "Use Bezier Curves"
msgstr "Usar Curvas Bezier"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Pegar Pistas"
+msgstr "Crear RESET Track(s)"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -940,9 +957,8 @@ msgid "Edit..."
msgstr "Editar..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "Ir Al Método"
+msgstr "Ir al Método"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -960,9 +976,9 @@ msgstr "Crear Nuevo %s"
msgid "No results for \"%s\"."
msgstr "No hay resultados para \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "No hay descripción disponible para %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1260,9 +1276,8 @@ msgid "Error opening asset file for \"%s\" (not in ZIP format)."
msgstr "Error al abrir el archivo de paquete (no esta en formato ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (Ya existe)"
+msgstr "%s (ya existe)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
@@ -1277,19 +1292,16 @@ msgid "Uncompressing Assets"
msgstr "Descomprimiendo Assets"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Los siguientes archivos no se pudieron extraer del paquete:"
+msgstr "Falló la extracción de los siguientes archivos del asset \"%s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Y %d archivos más."
+msgstr "(y %s archivos más)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "El Paquete se instaló exitosamente!"
+msgstr "El asset \"%s\" se instaló exitosamente!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1301,9 +1313,8 @@ msgid "Install"
msgstr "Instalar"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Instalador de Paquetes"
+msgstr "Instalador de Assets"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1366,7 +1377,6 @@ msgid "Bypass"
msgstr "Bypass"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "Opciones de Bus"
@@ -1491,7 +1501,7 @@ msgstr "No debe coincidir con el nombre de una clase ya existente del motor."
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing built-in type name."
-msgstr "No debe coincidir con el nombre de un tipo built-in ya existente."
+msgstr "No debe coincidir con el nombre de un tipo integrado ya existente."
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing global constant name."
@@ -1534,13 +1544,12 @@ msgid "Can't add autoload:"
msgstr "No se puede agregar autoload:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "El archivo existe."
+msgstr "%s es una ruta inválida. El archivo no existe."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s es una ruta inválida. No esta en la ruta de recursos (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1564,9 +1573,8 @@ msgid "Name"
msgstr "Nombre"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Variable"
+msgstr "Variable Global"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1742,29 +1750,32 @@ msgstr "Dock de Importación"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Permite ver y editar escenas 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Permite editar scripts usando el editor de scripts integrado."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Provee acceso integrado a la Biblioteca de Assets."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Permite editar la jerarquía de nodos en el panel de Escena."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Permite trabajar con señales y grupos del nodo seleccionado en el panel de "
+"Escena."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
msgstr ""
+"Permite explorar el sistema de archivos local a través de un panel dedicado."
#: editor/editor_feature_profile.cpp
msgid ""
@@ -1773,13 +1784,12 @@ msgid ""
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Actual)"
+msgstr "(actual)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(ninguno)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
@@ -1815,19 +1825,16 @@ msgid "Enable Contextual Editor"
msgstr "Activar el Editor Contextual"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Propiedades:"
+msgstr "Propiedades de Clase:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Características"
+msgstr "Características Principales:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Clases Activadas:"
+msgstr "Nodos y Clases:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1847,23 +1854,20 @@ msgid "Error saving profile to path: '%s'."
msgstr "Error al guardar el perfil en la ruta: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "Restablecer Valores Por Defecto"
+msgstr "Restablecer a Valores Por Defecto"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
msgstr "Perfil Actual:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Borrar Perfil"
+msgstr "Crear Perfil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Remover Tile"
+msgstr "Remover Perfil"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1883,14 +1887,12 @@ msgid "Export"
msgstr "Exportar"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Perfil Actual:"
+msgstr "Configurar Perfil Seleccionado:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Opciones de Textura"
+msgstr "Opciones Extra:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
@@ -1921,9 +1923,8 @@ msgid "Select Current Folder"
msgstr "Seleccionar Carpeta Actual"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "El Archivo Existe, Sobreescribir?"
+msgstr "El archivo existe, sobrescribir?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2316,6 +2317,17 @@ msgid "New Window"
msgstr "Nueva Ventana"
#: 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 "Gira cuando la ventana del editor se redibuja."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Los recursos importados no se pueden guardar."
@@ -2944,9 +2956,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Explorador de Recursos Huérfanos..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Renombrar Proyecto"
+msgstr "Volver a Cargar el Proyecto Actual"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3106,22 +3117,20 @@ msgid "Help"
msgstr "Ayuda"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Abrir Documentación"
+msgstr "Documentación En Línea"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Preguntas y Respuestas"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "Reportar un Bug"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "Setear un Valor"
+msgstr "Sugerir una Feature"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3132,9 +3141,8 @@ msgid "Community"
msgstr "Comunidad"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "Acerca de"
+msgstr "Acerca de Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3186,10 +3194,6 @@ msgid "Save & Restart"
msgstr "Guardar y Reiniciar"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Gira cuando la ventana del editor se redibuja."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Actualizar Continuamente"
@@ -3232,9 +3236,8 @@ msgid "Manage Templates"
msgstr "Administrar Plantillas"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "Instalar Desde Archivo"
+msgstr "Instalar desde archivo"
#: editor/editor_node.cpp
#, fuzzy
@@ -3323,9 +3326,8 @@ msgid "Select"
msgstr "Seleccionar"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Seleccionar Carpeta Actual"
+msgstr "Seleccionar Actual"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3389,14 +3391,12 @@ msgid "Update"
msgstr "Actualizar"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Version:"
+msgstr "Version"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Autores"
+msgstr "Autor"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3414,7 +3414,6 @@ msgid "Frame Time (ms)"
msgstr "Duración de Frame (seg)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
msgstr "Tiempo Promedio (seg)"
@@ -3564,9 +3563,8 @@ msgid "Paste"
msgstr "Pegar"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
-msgstr "Convertir A %s"
+msgstr "Convertir a %s"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3640,49 +3638,43 @@ msgstr "Importar Desde Nodo:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Abrir la carpeta que contiene estas plantillas."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Desinstalar estas plantillas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "No hay ningún archivo '%s'."
+msgstr "No hay mirrors disponibles."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Recuperando mirrors, esperá, por favor..."
+msgstr "Obteniendo la lista de mirrors..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Iniciando la descarga..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Error al solicitar la URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "Conectando al Mirror..."
+msgstr "Conectando al mirror..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "No se ha podido resolver el nombre del host:"
+msgstr "No se pudo resolver la dirección indicada."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "No se puede conectar al host:"
+msgstr "No se puede conectar al mirror."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "No hay respuesta desde el host:"
+msgstr "No hubo respuesta desde el mirror."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3690,18 +3682,16 @@ msgid "Request failed."
msgstr "Solicitud fallida."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Solicitud fallida, demasiadas redireccinoes"
+msgstr "La solicitud termino en un bucle de redirecciones."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Solicitud fallida."
+msgstr "Solicitud fallida:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Descarga completada; extrayendo plantillas..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3728,7 +3718,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Mejor mirror disponible"
#: editor/export_template_manager.cpp
msgid ""
@@ -3828,15 +3818,17 @@ msgstr "Version Actual:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
msgstr ""
+"Faltan las plantillas de exportación. Descargalas o instalalas desde un "
+"archivo."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
msgstr ""
+"Las plantillas de exportación están instaladas y listas para ser usadas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "Abrir Archivo"
+msgstr "Abrir Carpeta"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
@@ -3852,13 +3844,22 @@ msgid "Uninstall templates for the current version."
msgstr "Valor inicial para el contador"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Error de Descarga"
+msgstr "Descargar desde:"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Ejecutar en el Navegador"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Copiar Error"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Descargar e Instalar"
#: editor/export_template_manager.cpp
msgid ""
@@ -3873,14 +3874,12 @@ msgstr ""
"versiones de desarrollo."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
-msgstr "Instalar Desde Archivo"
+msgstr "Instalar desde Archivo"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Importar Plantillas Desde Archivo ZIP"
+msgstr "Instalar plantillas desde un archivo local."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3888,19 +3887,16 @@ msgid "Cancel"
msgstr "Cancelar"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "No se puede abir el zip de plantillas de exportación."
+msgstr "Cancelar la descarga de las plantillas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "Versiones Instaladas:"
+msgstr "Otras Versiones Instaladas:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Desinstalar"
+msgstr "Desinstalar Plantilla"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -4062,35 +4058,32 @@ msgid "Collapse All"
msgstr "Colapsar Todos"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Buscar archivos"
+msgstr "Ordenar archivos"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Ordenar por Nombre (Ascendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Ordenar por Nombre (Descendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Ordenar por Tipo (Ascendente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Ordenar por Tipo (Descendente)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Ultima Modificación"
+msgstr "Ordenar por Ultima Modificación"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Ultima Modificación"
+msgstr "Ordenar por Primera Modificación"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4102,7 +4095,7 @@ msgstr "Renombrar..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Ubicar foco en la caja de búsqueda"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4412,14 +4405,12 @@ msgid "Failed to load resource."
msgstr "Fallo al cargar recurso."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Propiedades"
+msgstr "Copiar Propiedades"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Propiedades"
+msgstr "Pegar Propiedades"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4444,23 +4435,20 @@ msgid "Save As..."
msgstr "Guardar Como..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "No está en la ruta de recursos."
+msgstr "Opciones de recursos extra."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Editar Portapapeles de Recursos"
+msgstr "Editar Recurso desde el Portapapeles"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "Copiar Recurso"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "Crear Built-In"
+msgstr "Convertir en Recurso Integrado"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4475,9 +4463,8 @@ msgid "History of recently edited objects."
msgstr "Historial de objetos recientemente editados."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Abrir Documentación"
+msgstr "Abrir la documentación para este objeto."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4488,9 +4475,8 @@ msgid "Filter properties"
msgstr "Filtrar propiedades"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Propiedades del objeto."
+msgstr "Administrar propiedades del objeto."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4735,9 +4721,8 @@ msgid "Blend:"
msgstr "Blend:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parámetro Modificado"
+msgstr "Parámetro Modificado:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5471,11 +5456,11 @@ msgstr "Todos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Buscar plantillas, proyectos y demos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Buscar assets (excluyendo plantillas, proyectos y demos)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -6124,14 +6109,12 @@ msgid "Clear Pose"
msgstr "Restablecer Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "Agregar Nodo"
+msgstr "Agregar Nodo Acá"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Instanciar Escena(s)"
+msgstr "Instanciar Escena Acá"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6147,49 +6130,43 @@ msgstr "Panear Vista"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Zoom a 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Zoom a 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Zoom a 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Alejar Zoom"
+msgstr "Zoom a 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Alejar Zoom"
+msgstr "Zoom a 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Alejar Zoom"
+msgstr "Zoom a 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Alejar Zoom"
+msgstr "Zoom a 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Alejar Zoom"
+msgstr "Zoom a 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Alejar Zoom"
+msgstr "Zoom a 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Zoom a 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -8734,6 +8711,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Quitar Todos los Ítems"
@@ -8764,6 +8747,12 @@ msgid "Remove All StyleBox Items"
msgstr "Quitar Todos los Ítems"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Agregar Items de Clases"
@@ -12188,6 +12177,8 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"Advertencia: Usualmente no se recomienda que un script tenga el mismo nombre "
+"que un tipo integrado."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12437,6 +12428,16 @@ msgstr "Cambiar Altura de Shape Cilindro"
msgid "Change Ray Shape Length"
msgstr "Cambiar Largo de Shape Rayo"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Setear Posición de Punto de Curva"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Setear Posición de Punto de Curva"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Cambiar Radio de Cilindro"
@@ -14233,6 +14234,42 @@ msgstr ""
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 "Este cuerpo será ignorado hasta que se establezca un mesh."
@@ -15498,9 +15535,6 @@ msgstr "Las constantes no pueden modificarse."
#~ msgid "I see..."
#~ msgstr "Ya Veo..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "No se puede abrir '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Ugh"
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 6f8561f8ab..13019cd9e3 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -340,6 +340,7 @@ msgstr "Muuda animatsiooni silmuse režiimi"
msgid "Remove Anim Track"
msgstr "Eemalda animatsiooni rada"
+#. 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 "Loo uus rada %s-le ja sisesta võti?"
@@ -364,10 +365,27 @@ msgstr "Loo"
msgid "Anim Insert"
msgstr "Animatsiooni sisestus"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Animatsioon"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer ei saa ennast animeerida, ainult teise mänijaid."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Atribuut"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Loo ja sisesta animatsioon"
@@ -930,7 +948,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2261,6 +2279,17 @@ msgid "New Window"
msgstr "Uus aken"
#: 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 "Imporditud ressursse ei saa salvestada."
@@ -3057,10 +3086,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3673,6 +3698,16 @@ msgid "Download from:"
msgstr ""
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Ava failihalduris"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Kopeeri viga"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8388,6 +8423,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Eemalda kõik katkepunktid"
@@ -8418,6 +8459,12 @@ msgid "Remove All StyleBox Items"
msgstr "Eemalda kõik katkepunktid"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Lisa lemmikutesse"
@@ -11868,6 +11915,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13479,6 +13534,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index 018f65b79e..7b6934ff33 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -340,6 +340,7 @@ msgstr "Animazioaren Loop Modua Aldatu"
msgid "Remove Anim Track"
msgstr "Ezabatu Animazio Pista"
+#. 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 "%s-rentzat pista berria sortu eta giltza sartu?"
@@ -364,10 +365,27 @@ msgstr "Sortu"
msgid "Anim Insert"
msgstr "Animazioa Sartu"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Kargatu animazioa"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer bat ezin da norbera animatu, soilik beste playerrak."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Propietateak"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Animazioa Sortu eta Txertatu"
@@ -929,7 +947,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2242,6 +2260,17 @@ 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 ""
@@ -3025,10 +3054,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3648,6 +3673,15 @@ msgid "Download from:"
msgstr "Jaitsiera errorea"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Ireki fitxategi-kudeatzailean"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8355,6 +8389,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Kendu elementu guztiak"
@@ -8385,6 +8425,12 @@ msgid "Remove All StyleBox Items"
msgstr "Kendu elementu guztiak"
#: 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 ""
@@ -11835,6 +11881,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13441,6 +13495,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index 09cc83a73b..bb761cf137 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -357,6 +357,7 @@ msgstr "تغییر حالت تکررار (Loop) انیمیشن"
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 "یک ترک جدید برای s% بساز و کلید را درج کن؟"
@@ -381,10 +382,28 @@ msgstr "تولید"
msgid "Anim Insert"
msgstr "در انیمیشن درج کن"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "در حال اتصال..."
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "property '%s'"
+msgstr "ویژگی '%s' موجود نیست."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "ساختن و درج انیمیشن"
@@ -959,7 +978,7 @@ msgstr "ساختن %s جدید"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2282,6 +2301,17 @@ 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 ""
@@ -3075,10 +3105,6 @@ msgid "Save & Restart"
msgstr "ذخیره و خروج"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "مستمر"
@@ -3722,6 +3748,16 @@ msgid "Download from:"
msgstr "خطاهای بارگیری"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "گشودن در مدیر پرونده"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "خطاهای بارگذاری"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8726,6 +8762,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "برداشتن انتخاب شده"
@@ -8756,6 +8798,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "افزودن مورد"
@@ -12427,6 +12475,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "برداشتن موج"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "برداشتن موج"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -14176,6 +14234,42 @@ msgstr ""
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 ""
@@ -14873,10 +14967,6 @@ msgstr "ثوابت قابل تغییر نیستند."
#~ msgid "Thanks!"
#~ msgstr "با تشکر !"
-#, fuzzy
-#~ msgid "Can't open '%s'."
-#~ msgstr "در حال اتصال..."
-
#~ msgid "Run Script"
#~ msgstr "اجرای اسکریپت"
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index f0b5ff0457..ffedccec28 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-29 21:48+0000\n"
+"PO-Revision-Date: 2021-08-10 21:40+0000\n"
"Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -25,7 +25,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.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -347,6 +347,7 @@ msgstr "Vaihda animaation toistotilaa"
msgid "Remove Anim Track"
msgstr "Poista animaatioraita"
+#. 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 "Luo kohteelle %s UUSI raita ja lisää avain?"
@@ -371,10 +372,28 @@ msgstr "Luo"
msgid "Anim Insert"
msgstr "Animaatio: lisää"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Ei voida avata tiedostoa '%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 "Animaatio"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer ei voi animoida itseään, vain muita toistimia."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Ominaisuutta '%s' ei löytynyt."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Animaatio: luo ja lisää"
@@ -580,9 +599,8 @@ msgid "Go to Previous Step"
msgstr "Mene edelliseen askeleeseen"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Palauta"
+msgstr "Tee palautus"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -601,9 +619,8 @@ msgid "Use Bezier Curves"
msgstr "Käytä Bezier-käyriä"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Liitä raidat"
+msgstr "Luo palautusraidat"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -927,7 +944,6 @@ msgid "Edit..."
msgstr "Muokkaa..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Mene metodiin"
@@ -947,9 +963,9 @@ msgstr "Luo uusi %s"
msgid "No results for \"%s\"."
msgstr "Ei tuloksia haulle \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "%s kuvaus ei ole saatavilla."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1049,18 +1065,16 @@ msgid "Owners Of:"
msgstr "Omistajat kohteelle:"
#: editor/dependency_editor.cpp
-#, fuzzy
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 ""
-"Poista valitut tiedostot projektista? (ei voida kumota)\n"
-"Löydät poistetut tiedostot järjestelmän roskakorista, mikäli haluat "
-"palauttaa ne."
+"Poista valitut tiedostot projektista? (Ei voida kumota.)\n"
+"Riippuen tiedostojärjestelmäsi asetuksista, tiedostot siirretään joko "
+"järjestelmän roskakoriin tai poistetaan pysyvästi."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1069,9 +1083,9 @@ msgid ""
"to the system trash or deleted permanently."
msgstr ""
"Poistettavia tiedostoja tarvitaan muiden resurssien toimivuuteen.\n"
-"Poistetaanko silti? (ei voida kumota)\n"
-"Löydät poistetut tiedostot järjestelmän roskakorista, mikäli haluat "
-"palauttaa ne."
+"Poistetaanko ne silti? (Ei voida kumota.)\n"
+"Riippuen tiedostojärjestelmäsi asetuksista, tiedostot siirretään joko "
+"järjestelmän roskakoriin tai poistetaan pysyvästi."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1241,41 +1255,39 @@ msgid "Licenses"
msgstr "Lisenssit"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Virhe avattaessa pakettitiedostoa (se ei ole ZIP-muodossa)."
+msgstr "Virhe avattaessa \"%s\" asset-tiedostoa (se ei ole ZIP-muodossa)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
msgstr "%s (on jo olemassa)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
msgstr ""
+"Assetin \"%s\"sisältö - %d tiedostoa on ristiriidassa projektisi kanssa:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"Assetin \"%s\" sisältö - Yksikään tiedosto ei ole ristiriidassa projektisi "
+"kanssa:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Puretaan assetteja"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Seuraavien tiedostojen purku paketista epäonnistui:"
+msgstr "Seuraavien tiedostojen purku assetista \"%s\" epäonnistui:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Ja vielä %s tiedostoa."
+msgstr "(ja vielä %s tiedostoa)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Paketti asennettu onnistuneesti!"
+msgstr "Asset \"%s\" asennettu onnistuneesti!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1287,9 +1299,8 @@ msgid "Install"
msgstr "Asenna"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Pakettien asentaja"
+msgstr "Assettien asentaja"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1352,7 +1363,6 @@ msgid "Bypass"
msgstr "Ohita"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "Väylän asetukset"
@@ -1523,13 +1533,12 @@ msgid "Can't add autoload:"
msgstr "Ei voida lisätä automaattisesti ladattavaa:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Tiedostoa ei ole olemassa."
+msgstr "%s on virheellinen polku. Tiedostoa ei ole olemassa."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s on virheellinen polku. Ei löydy resurssipolusta (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1553,9 +1562,8 @@ msgid "Name"
msgstr "Nimi"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Muuttuja"
+msgstr "Globaali muuttuja"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1728,48 +1736,51 @@ msgstr "Tuontitelakka"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Antaa katsella ja muokata 3D-skenejä."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Antaa muokata skriptejä käyttäen integroitua skriptieditoria."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Tarjoaa valmiin pääsyn Asset-kirjastoon."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Antaa muokata solmuhierarkiaa Skene-telakassa."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Antaa työskennellä valitun solmun signaalien ja ryhmien kanssa Skene-"
+"telakassa."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "Antaa selata paikallista tiedostojärjestelmää erillisellä telakalla."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Antaa konfiguroida tuontiasetuksia yksittäiselle assetille. Edellyttää "
+"Tiedostojärjestelmä-telakkaa toimiakseen."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Nykyinen)"
+msgstr "(nykyinen)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(ei mikään)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "Poistetaanko nykyinen valittu profiili, '%s'? Ei voida kumota."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1802,19 +1813,16 @@ msgid "Enable Contextual Editor"
msgstr "Ota asiayhteydellinen editori käyttöön"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Ominaisuudet:"
+msgstr "Luokan ominaisuudet:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Ominaisuudet"
+msgstr "Pääominaisuudet:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Käytössä olevat luokat:"
+msgstr "Solmut ja luokat:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1833,7 +1841,6 @@ msgid "Error saving profile to path: '%s'."
msgstr "Virhe tallennettaessa profiilia polkuun: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
msgstr "Palauta oletusarvoihin"
@@ -1842,14 +1849,12 @@ msgid "Current Profile:"
msgstr "Nykyinen profiili:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Tyhjennä profiili"
+msgstr "Luo profiili"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Poista laatta"
+msgstr "Poista profiili"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1869,18 +1874,17 @@ msgid "Export"
msgstr "Vie"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Nykyinen profiili:"
+msgstr "Konfiguroi valittu profiili:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Tekstuurin asetukset"
+msgstr "Ylimääräiset asetukset:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Luo tai tuo profiili muokataksesi saatavilla olevia luokkia ja ominaisuuksia."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1907,9 +1911,8 @@ msgid "Select Current Folder"
msgstr "Valitse nykyinen kansio"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "Tiedosto on jo olemassa, korvaa?"
+msgstr "Tiedosto on jo olemassa, korvataanko?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2301,6 +2304,17 @@ msgid "New Window"
msgstr "Uusi ikkuna"
#: 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 "Pyörii kun editorin ikkuna päivittyy."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Tuotuja resursseja ei voida tallentaa."
@@ -2530,13 +2544,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"Nykyisellä skenellä ei ole juurisolmua, mutta %d muokattua ulkoista "
+"resurssia tallennettiin silti."
#: 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 "Skenen tallentaminen edellyttää, että sillä on juurisolmu."
+msgstr ""
+"Skenen tallentaminen edellyttää, että sillä on juurisolmu. Voit lisätä "
+"juurisolmun Skene-telakasta."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2914,9 +2931,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Irrallisten resurssien hallinta..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Nimetä projekti"
+msgstr "Lataa uudelleen nykyinen projekti"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3076,22 +3092,20 @@ msgid "Help"
msgstr "Ohje"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Avaa dokumentaatio"
+msgstr "Online-dokumentaatio"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Kysymykset & vastaukset"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "Raportoi bugi"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "Aseta arvo"
+msgstr "Ehdota ominaisuutta"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3102,9 +3116,8 @@ msgid "Community"
msgstr "Yhteisö"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "Tietoja"
+msgstr "Tietoja Godotista"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3156,10 +3169,6 @@ msgid "Save & Restart"
msgstr "Tallenna & käynnistä uudelleen"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Pyörii kun editorin ikkuna päivittyy."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Päivitä jatkuvasti"
@@ -3200,14 +3209,12 @@ msgid "Manage Templates"
msgstr "Hallinnoi malleja"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
msgstr "Asenna tiedostosta"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Valitse lähdemesh:"
+msgstr "Valitse android-lähdetiedosto"
#: editor/editor_node.cpp
msgid ""
@@ -3290,9 +3297,8 @@ msgid "Select"
msgstr "Valitse"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Valitse nykyinen kansio"
+msgstr "Valitse nykyinen"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3327,9 +3333,8 @@ msgid "No sub-resources found."
msgstr "Aliresursseja ei löydetty."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Aliresursseja ei löydetty."
+msgstr "Avaa aliresurssien luettelo."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3356,14 +3361,12 @@ msgid "Update"
msgstr "Päivitä"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Versio:"
+msgstr "Versio"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Tekijät"
+msgstr "Tekijä"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3376,14 +3379,12 @@ msgid "Measure:"
msgstr "Mittaa:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Kuvaruudun aika (sek)"
+msgstr "Kuvaruudun aika (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Keskimääräinen aika (sek)"
+msgstr "Keskimääräinen aika (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3410,6 +3411,13 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Sisältävä: Sisältää muissa tämän funktion kutsumissa funktioissa kuluneen "
+"ajan.\n"
+"Käytä tätä löytääksesi pullonkaulat.\n"
+"\n"
+"Itse: Lasketaan ainoastaan funktiossa itsessään kulunut aika, eikä muissa "
+"tuon funktion kutsumissa funktioissa käytettyä aikaa.\n"
+"Käytä tätä löytääksesi yksittäiset optimointia vaativat funktiot."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3532,7 +3540,6 @@ msgid "Paste"
msgstr "Liitä"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "Muunna muotoon %s"
@@ -3625,31 +3632,27 @@ msgstr "Noudetaan peilipalvelimia, hetkinen..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Aloitetaan lataus..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Virhe pyydettäessä osoitetta:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
msgstr "Yhdistetään peilipalvelimeen..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Palvelinta ei löytynyt:"
+msgstr "Pyydetyn osoitteen selvitys ei onnistunut."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Isäntään yhdistäminen epäonnistui:"
+msgstr "Peilipalvelimeen yhdistäminen epäonnistui."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Ei vastausta isännältä:"
+msgstr "Ei vastausta peilipalvelimelta."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3657,18 +3660,16 @@ msgid "Request failed."
msgstr "Pyyntö epäonnistui."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Pyyntö epäonnistui, liikaa uudelleenohjauksia"
+msgstr "Pyyntö päätyi uudelleenohjaussilmukkaan."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Pyyntö epäonnistui."
+msgstr "Pyyntö epäonnistui:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Lataaminen valmis; puretaan malleja..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3695,7 +3696,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Paras saatavilla oleva peilipalvelin"
#: editor/export_template_manager.cpp
msgid ""
@@ -3748,9 +3749,8 @@ msgid "SSL Handshake Error"
msgstr "Virhe SSL kättelyssä"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Vientimallien zip-tiedostoa ei voitu avata."
+msgstr "Vientimallien tiedostoa ei voida avata."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3801,9 +3801,8 @@ msgid "Export templates are installed and ready to be used."
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "Avaa tiedosto"
+msgstr "Avaa kansio"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
@@ -3819,33 +3818,42 @@ msgid "Uninstall templates for the current version."
msgstr "Laskurin alkuarvo"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Latausvirhe"
+msgstr "Lataa sijannista:"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Suorita selaimessa"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Kopioi virhe"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Lataa ja asenna"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Lataa ja asenna mallit nykyiselle versiolle parhaasta mahdollisesta "
+"peilipalvelimesta."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
msgstr "Viralliset vientimallit eivät ole saatavilla kehityskäännöksille."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
msgstr "Asenna tiedostosta"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Tuo mallit ZIP-tiedostosta"
+msgstr "Asenna mallit paikallisesta tiedostosta."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3853,19 +3861,16 @@ msgid "Cancel"
msgstr "Peruuta"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "Vientimallien zip-tiedostoa ei voitu avata."
+msgstr "Keskeytä mallien lataus."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "Asennetut versiot:"
+msgstr "Muut asennetut versiot:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Poista asennus"
+msgstr "Poista malli"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -3880,6 +3885,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Mallien lataus jatkuu.\n"
+"Saatat kokea lyhyitä editorin jähmettymisiä niiden tullessa valmiiksi."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4026,35 +4033,32 @@ msgid "Collapse All"
msgstr "Tiivistä kaikki"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Etsi tiedostoista"
+msgstr "Lajittele tiedostot"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Lajittele nimen mukaan (nouseva)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Lajittele nimen mukaan (laskeva)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Lajittele tyypin mukaan (nouseva)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Lajittele tyypin mukaan (laskeva)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Viimeksi muutettu"
+msgstr "Lajittele viimeksi muokatun mukaan"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Viimeksi muutettu"
+msgstr "Lajittele ensiksi muokatun mukaan"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4378,14 +4382,12 @@ msgid "Failed to load resource."
msgstr "Resurssin lataaminen epäonnistui."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Ominaisuudet"
+msgstr "Kopioi ominaisuudet"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Ominaisuudet"
+msgstr "Liitä ominaisuudet"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4410,9 +4412,8 @@ msgid "Save As..."
msgstr "Tallenna nimellä..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "Ei löytynyt resurssipolusta."
+msgstr "Ylimääräiset resurssivalinnat."
#: editor/inspector_dock.cpp
#, fuzzy
@@ -5437,7 +5438,7 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Etsi assetteja (poislukien mallit, projektit ja demot)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5481,7 +5482,7 @@ msgstr "Assettien zip-tiedosto"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Äänen esikuuntelun toisto/keskeytys"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5741,13 +5742,12 @@ msgstr "Muuta ankkureita"
#: 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 ""
-"Pelikameran ohitus\n"
-"Ohittaa pelikameran editorin näyttöruutukameralla."
+"Projektikameran ohitus\n"
+"Ohittaa käynnissä olevan projektin kameran editorin näyttöruutukameralla."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5756,6 +5756,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"Projektikameran ohitus\n"
+"Mikään projekti ei ole käynnissä. Aja projekti editorista käyttääksesi tätä "
+"ominaisuutta."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -8692,6 +8695,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Poista kaikki"
@@ -8722,6 +8731,12 @@ msgid "Remove All StyleBox Items"
msgstr "Poista kaikki"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Lisää luokka"
@@ -12384,6 +12399,16 @@ msgstr "Muuta sylinterimuodon korkeutta"
msgid "Change Ray Shape Length"
msgstr "Vaihda säteen muodon pituutta"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Aseta käyräpisteen sijainti"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Aseta käyräpisteen sijainti"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Muuta sylinterin sädettä"
@@ -14163,6 +14188,42 @@ msgstr ""
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 "Tämä kappale sivuutetaan, kunnes asetat meshin."
@@ -15490,9 +15551,6 @@ msgstr "Vakioita ei voi muokata."
#~ msgid "I see..."
#~ msgstr "Ymmärrän..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Ei voida avata tiedostoa '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Äh"
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index aacdf9c442..e53b7bb1a7 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -345,6 +345,7 @@ msgstr ""
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 ""
@@ -369,10 +370,26 @@ msgstr "Lumikha"
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
+#, fuzzy
+msgid "animation"
+msgstr "Pagulit ng Animation"
+
#: 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 ""
@@ -928,7 +945,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2222,6 +2239,17 @@ 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 ""
@@ -3002,10 +3030,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "Tuloy-tuloy"
@@ -3615,6 +3639,14 @@ msgid "Download from:"
msgstr "Kumpleto ang pag-Download."
#: 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 ""
@@ -8303,6 +8335,12 @@ msgid ""
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 ""
@@ -8329,6 +8367,12 @@ 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 ""
@@ -11749,6 +11793,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13350,6 +13402,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index 9be7d406dd..e6e2c9021e 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -42,7 +42,7 @@
# Xananax <xananax@yelostudio.com>, 2017-2018.
# Perrier Mathis <mathis.perrier73@gmail.com>, 2018.
# Ewan Lehnebach <ewan.lehnebach@gmail.com>, 2018.
-# Hugo Locurcio <hugo.locurcio@hugo.pro>, 2018, 2019, 2020.
+# Hugo Locurcio <hugo.locurcio@hugo.pro>, 2018, 2019, 2020, 2021.
# Grigore Antoniuc <grisa181@gmail.com>, 2018.
# x2f <x.defoy@gmail.com>, 2018.
# LittleWhite <lw.demoscene@googlemail.com>, 2018.
@@ -81,12 +81,14 @@
# ASTRALE <jules.cercy@etu.univ-lyon1.fr>, 2021.
# Julien Vanelian <julienvanelian@hotmail.com>, 2021.
# Clément Topy <topy72.mine@gmail.com>, 2021.
+# Cold <coldragon78@gmail.com>, 2021.
+# Blackiris <divjvc@free.fr>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-16 05:47+0000\n"
-"Last-Translator: Pierre Caye <pierrecaye@laposte.net>\n"
+"PO-Revision-Date: 2021-08-12 14:48+0000\n"
+"Last-Translator: Blackiris <divjvc@free.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -94,7 +96,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.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -416,6 +418,7 @@ msgstr "Modifier le mode de boucle d’animation"
msgid "Remove Anim Track"
msgstr "Supprimer la piste d’animation"
+#. 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 "Créer une NOUVELLE piste pour %s et insérer une clé ?"
@@ -440,11 +443,29 @@ msgstr "Créer"
msgid "Anim Insert"
msgstr "Insérer une animation"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Mode d'aimantation (%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 "Animation"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"Un AnimationPlayer ne peut s’animer lui-même, seulement les autres lecteurs."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Il n'y a pas de propriété « %s »."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Créer et insérer une animation"
@@ -660,9 +681,8 @@ msgid "Go to Previous Step"
msgstr "Aller à l'étape précédente"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Réinitialiser"
+msgstr "Appliquer la réinitialisation"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -681,9 +701,8 @@ msgid "Use Bezier Curves"
msgstr "Utiliser les courbes de Bézier"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Coller pistes"
+msgstr "Créer des pistes RESET"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -1008,7 +1027,6 @@ msgid "Edit..."
msgstr "Édition..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Aller à la méthode"
@@ -1028,9 +1046,9 @@ msgstr "Créer un nouveau %s"
msgid "No results for \"%s\"."
msgstr "Aucun résultats pour \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Pas de description disponible pour %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1130,18 +1148,16 @@ msgid "Owners Of:"
msgstr "Propriétaires de :"
#: editor/dependency_editor.cpp
-#, fuzzy
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 ""
-"Supprimer les fichiers sélectionnés du projet ? (annulation impossible)\n"
-"Vous pouvez retrouver les fichiers supprimés dans la corbeille du système "
-"pour les restaurer."
+"Supprimer les fichiers sélectionnés du projet ? (Annulation impossible.)\n"
+"En fonction de la configuration de votre système, les fichiers seront soient "
+"déplacés vers la corbeille du système, soit supprimés définitivement."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1151,9 +1167,9 @@ msgid ""
msgstr ""
"Les fichiers qui vont être supprimés sont utilisés par d'autres ressources "
"pour leur fonctionnement.\n"
-"Les supprimer tout de même ? (annulation impossible)\n"
-"Vous pouvez retrouver les fichiers supprimés dans la corbeille du système "
-"pour les restaurer."
+"Les supprimer tout de même ? (Annulation impossible.)\n"
+"En fonction de la configuration de votre système, les fichiers seront soient "
+"déplacés vers la corbeille du système, soit supprimés définitivement."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1323,42 +1339,41 @@ msgid "Licenses"
msgstr "Licences"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
msgstr ""
-"Erreur lors de l'ouverture du fichier package (il n'est pas au format ZIP)."
+"Erreur lors de l'ouverture du fichier d'asset « %s » (il n'est pas au format "
+"ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
msgstr "%s (existe déjà)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
msgstr ""
+"Contenus de l'asset « %s » - %d fichier(s) sont en conflit avec votre "
+"projet :"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"Contenus de l'asset « %s » - Pas de fichiers en conflit avec votre projet :"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Décompression des assets"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "L'extraction des fichiers suivants depuis le paquetage a échoué :"
+msgstr "L'extraction des fichiers suivants depuis l'asset « %s » a échoué :"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Et %s fichiers supplémentaires."
+msgstr "(et %s fichiers supplémentaires)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Paquetage installé avec succès !"
+msgstr "Asset « %s » installé avec succès !"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1370,9 +1385,8 @@ msgid "Install"
msgstr "Installer"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Installeur de paquetage"
+msgstr "Installateur d'asset"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1435,7 +1449,6 @@ msgid "Bypass"
msgstr "Contourner"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "Options de bus"
@@ -1605,28 +1618,29 @@ msgid "Can't add autoload:"
msgstr "Impossible d'ajouter le chargement automatique :"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Le fichier n'existe pas."
+msgstr "%s est un chemin invalide. Le fichier n'existe pas."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
msgstr ""
+"%s est un chemin invalide. Il n'est pas dans le chemin des ressources "
+"(res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
-msgstr "Ajouter le chargement automatique"
+msgstr "Ajouter chargement automatique"
#: 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 "Chemin :"
+msgstr "Chemin :"
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr "Nom de nœud :"
+msgstr "Nom de nœud :"
#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp
#: editor/editor_plugin_settings.cpp editor/editor_profiler.cpp
@@ -1635,9 +1649,8 @@ msgid "Name"
msgstr "Nom"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Renommer la variable"
+msgstr "Variable globale"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1811,48 +1824,55 @@ msgstr "Dock d'importation"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Permet de visualiser et modifier des scènes 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
msgstr ""
+"Permet de modifier des scripts à l'aide de l'éditeur de script intégré."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Fournit un accès à l'Asset Library."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Permet de visualiser la hiérarchie des nœuds dans le dock Scène."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
msgstr ""
+"Permet de travailler avec les signaux et groupes d'un nœud sélectionné dans "
+"le dock Scène."
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
msgstr ""
+"Permet de naviguer le système de fichiers local à l'aide d'un dock dédié."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Permet de configurer les paramètres d'importation pour des ressources "
+"individuelles. Nécessite le dock Système de fichiers pour fonctionner."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Actuel)"
+msgstr "(actuel)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(aucun)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
msgstr ""
+"Supprimer le profil actuellement sélectionné « %s » ? Cette suppression ne "
+"peut être annulée."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1884,19 +1904,16 @@ msgid "Enable Contextual Editor"
msgstr "Ouvrir l'éditeur contextuel"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Propriétés :"
+msgstr "Propriétés de la classe :"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Fonctionnalités"
+msgstr "Fonctionnalités principales :"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Classes activées :"
+msgstr "Nœuds et classes :"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1915,23 +1932,20 @@ msgid "Error saving profile to path: '%s'."
msgstr "Erreur lors de l'enregistrement du profil au chemin : « %s »."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "Réinitialiser"
+msgstr "Réinitialiser aux valeurs par défaut"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
msgstr "Profil actuel :"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Effacer le profil"
+msgstr "Créer un profil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Supprimer la tuile"
+msgstr "Supprimer le profil"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1951,18 +1965,18 @@ msgid "Export"
msgstr "Exporter"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Profil actuel :"
+msgstr "Configurer le profil sélectionné :"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Options de classe :"
+msgstr "Options additionnelles :"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Créer ou importer un profil pour modifier les classes et propriétés "
+"disponibles."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1989,9 +2003,8 @@ msgid "Select Current Folder"
msgstr "Sélectionner le dossier courant"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "Le fichier existe, l'écraser ?"
+msgstr "Le fichier existe, l'écraser ?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2384,6 +2397,17 @@ msgid "New Window"
msgstr "Nouvelle Fenêtre"
#: 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 "Tourne lorsque la fenêtre de l'éditeur est redessinée."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Les ressources importées ne peuvent pas être sauvegardées."
@@ -2620,13 +2644,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"La scène actuelle n'a pas de nœud racine, mais %d ressources externes "
+"modifiées ont tout de même été enregistrées."
#: 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 "Un nœud racine est nécessaire pour sauvegarder la scène."
+msgstr ""
+"Un nœud racine est nécessaire pour enregistrer la scène. Vous pouvez ajouter "
+"un nœud racine en utilisant le dock Scène."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -3018,9 +3045,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Explorateur de ressources orphelines..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Renommer le projet"
+msgstr "Recharger le projet actuel"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3183,13 +3209,12 @@ msgid "Help"
msgstr "Aide"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Ouvrir la documentation"
+msgstr "Documentation en ligne"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Questions et réponses"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3197,7 +3222,7 @@ msgstr "Signaler un bug"
#: editor/editor_node.cpp
msgid "Suggest a Feature"
-msgstr ""
+msgstr "Suggérer une fonctionnalité"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3208,9 +3233,8 @@ msgid "Community"
msgstr "Communauté"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "À propos"
+msgstr "À propos de Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3262,10 +3286,6 @@ msgid "Save & Restart"
msgstr "Enregistrer et redémarrer"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Tourne lorsque la fenêtre de l'éditeur est redessinée."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Mettre à jour en continu"
@@ -3308,14 +3328,12 @@ msgid "Manage Templates"
msgstr "Gérer les modèles"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "Installer depuis fichier"
+msgstr "Installer depuis un fichier"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Sélectionnez un maillage source :"
+msgstr "Sélectionner un fichier de sources Android"
#: editor/editor_node.cpp
msgid ""
@@ -3398,9 +3416,8 @@ msgid "Select"
msgstr "Sélectionner"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Sélectionner le dossier courant"
+msgstr "Sélectionner le dossier actuel"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3435,9 +3452,8 @@ msgid "No sub-resources found."
msgstr "Aucune sous-ressource n'a été trouvée."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Aucune sous-ressource n'a été trouvée."
+msgstr "Ouvrir une liste de sous-ressources."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3464,14 +3480,12 @@ msgid "Update"
msgstr "Mettre à jour"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Version :"
+msgstr "Version"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Auteurs"
+msgstr "Auteur"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3481,25 +3495,23 @@ msgstr "État"
#: editor/editor_profiler.cpp
msgid "Measure:"
-msgstr "Mesure :"
+msgstr "Mesurer :"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Temps par trame (seconde)"
+msgstr "Temps par image (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Temps moyen (seconde)"
+msgstr "Temps moyen (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
-msgstr "Trame %"
+msgstr "Image %"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
-msgstr "Trame physique %"
+msgstr "Image physique %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
@@ -3518,10 +3530,17 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Inclusif : Inclut le temps passé dans les fonctions appelées par cette "
+"fonction.\n"
+"Utilisez ce mode pour repérer les goulots d'étranglement.\n"
+"\n"
+"Self : N'inclure que le temps passé dans la fonction elle-même, et non le "
+"temps passé dans d'autres fonctions appelées par cette fonction.\n"
+"Utilisez ce mode pour trouver des fonctions individuelles à optimiser."
#: editor/editor_profiler.cpp
msgid "Frame #:"
-msgstr "Trame # :"
+msgstr "Image # :"
#: editor/editor_profiler.cpp
msgid "Time"
@@ -3640,9 +3659,8 @@ msgid "Paste"
msgstr "Coller"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
-msgstr "Convertir en %s"
+msgstr "Convertir vers %s"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3690,11 +3708,10 @@ msgid "Did you forget the '_run' method?"
msgstr "Avez-vous oublié la méthode « _run » ?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Maintenir Ctrl pour arrondir à l'entier. Maintenir Maj pour des changements "
-"plus précis."
+"Maintenir %s pour arrondir à l'entier près. Maintenir Maj. pour des "
+"changements plus précis."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3714,49 +3731,43 @@ msgstr "Importer à partir d'un nœud :"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Ouvrir le dossier contenant ces modèles."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Désinstaller ces modèles."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "'%s' n'existe pas."
+msgstr "Il n'y a pas de miroirs disponibles."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Récupération des miroirs, veuillez patienter..."
+msgstr "Récupération des miroirs…"
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Démarrage du téléchargement…"
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Erreur lors de la demande de l’URL :"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "Connexion au Miroir..."
+msgstr "Connexion au miroir…"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Impossible de résoudre le nom de l'hôte :"
+msgstr "Impossible de résoudre l'adresse demandée."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Connexion à l'hôte impossible :"
+msgstr "Impossible de se connecter au miroir."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Pas de réponse de l'hôte :"
+msgstr "Pas de réponse du miroir."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3764,22 +3775,20 @@ msgid "Request failed."
msgstr "La requête a échoué."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "La requête a échoué, trop de redirections"
+msgstr "La requête a échoué car il y a eu trop de redirections."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "La requête a échoué."
+msgstr "La requête a échoué :"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Téléchargement terminé, extraction des modèles…"
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
-msgstr "Impossible de supprimer le fichier temporaire :"
+msgstr "Impossible de supprimer le fichier temporaire :"
#: editor/export_template_manager.cpp
msgid ""
@@ -3787,14 +3796,13 @@ msgid ""
"The problematic templates archives can be found at '%s'."
msgstr ""
"L'installation des modèles a échoué.\n"
-"Les archives des modèles problématiques se trouvent dans '%s'."
+"Les archives des modèles problématiques se trouvent dans « %s »."
#: editor/export_template_manager.cpp
msgid "Error getting the list of mirrors."
msgstr "Erreur lors du téléchargement de la liste des miroirs."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr ""
"Erreur lors de la lecture de la liste JSON des miroirs. Merci de signaler ce "
@@ -3802,7 +3810,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Meilleur miroir disponible"
#: editor/export_template_manager.cpp
msgid ""
@@ -3855,25 +3863,20 @@ msgid "SSL Handshake Error"
msgstr "Erreurs de la négociation SSL"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr ""
-"Impossible d'ouvrir le fichier ZIP contenant les modèles d'exportation."
+msgstr "Impossible d'ouvrir le fichier contenant les modèles d'exportation."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Format de version.txt invalide dans les modèles : %s."
+msgstr "Format de version.txt invalide dans le fichier de modèles : %s."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside the export templates file."
-msgstr "Aucun version.txt n'a été trouvé dans les modèles."
+msgstr "Aucun fichier version.txt n'a été trouvé dans le fichier des modèles."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for extracting templates:"
-msgstr "Erreur lors de la création du chemin pour les modèles :"
+msgstr "Erreur lors de la création du chemin pour l'extraction des modèles :"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -3884,9 +3887,8 @@ msgid "Importing:"
msgstr "Importation :"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Supprimer la version « %s » du modèle ?"
+msgstr "Supprimer les modèles pour la version « %s » ?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3903,43 +3905,56 @@ msgstr "Version courante :"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
msgstr ""
+"Les modèles d'exportation sont manquants. Téléchargez-les ou installez-les "
+"depuis un fichier."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+msgstr "Les modèles d'exportation sont installés et prêts à être utilisés."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Open Folder"
-msgstr "Ouvrir le fichier"
+msgstr "Ouvrir le dossier"
#: editor/export_template_manager.cpp
msgid "Open the folder containing installed templates for the current version."
msgstr ""
+"Ouvrir le dossier contenant les modèles d'exportation pour la version "
+"actuelle."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Désinstaller"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Valeur initiale pour le compteur"
+msgstr "Désinstaller les modèles d'exportation pour la version actuelle."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Erreur de téléchargement"
+msgstr "Télécharger depuis :"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Exécuter dans le navigateur"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Copier l'erreur"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "Télécharger et installer"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
msgstr ""
+"Télécharger et installer les modèles d'exportation pour la version actuelle "
+"depuis le meilleur miroir disponible."
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
@@ -3948,14 +3963,12 @@ msgstr ""
"versions de développement."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
-msgstr "Installer depuis fichier"
+msgstr "Installer depuis un fichier"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Importer des modèles depuis un fichier ZIP"
+msgstr "Installer des modèles d'exportation depuis un fichier local."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3963,24 +3976,20 @@ msgid "Cancel"
msgstr "Annuler"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr ""
-"Impossible d'ouvrir le fichier ZIP contenant les modèles d'exportation."
+msgstr "Annuler le téléchargement des modèles d'exportation."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Other Installed Versions:"
-msgstr "Versions installées :"
+msgstr "Autres versions installées :"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "Désinstaller"
+msgstr "Désinstaller le modèle"
#: editor/export_template_manager.cpp
msgid "Select Template File"
-msgstr "Sélectionner le fichier de modèle"
+msgstr "Sélectionner le fichier de modèles"
#: editor/export_template_manager.cpp
msgid "Godot Export Templates"
@@ -3991,6 +4000,10 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Les modèles d'exportation vont continuer à être téléchargés en arrière-"
+"plan.\n"
+"Vous pourrez peut-être remarquer un court gel de l'éditeur lorsque le "
+"téléchargement est terminé."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4138,35 +4151,32 @@ msgid "Collapse All"
msgstr "Réduire tout"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Rechercher des fichiers"
+msgstr "Trier les fichiers"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Trier par nom (ascendant)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Trier par nom (descendant)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Trier par type (ascendant)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Trier par type (descendant)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Dernière modification"
+msgstr "Trier par date de modification (plus récent au moins récent)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Dernière modification"
+msgstr "Trier par date de modification (moins récent au plus récent)"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4178,7 +4188,7 @@ msgstr "Renommer..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Mettre la boîte de recherche en surbrillance"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4488,14 +4498,12 @@ msgid "Failed to load resource."
msgstr "Impossible de charger la ressource."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Copy Properties"
-msgstr "Propriétés"
+msgstr "Copier les propriétés"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Paste Properties"
-msgstr "Propriétés"
+msgstr "Coller les propriétés"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
@@ -4520,23 +4528,20 @@ msgid "Save As..."
msgstr "Enregistrer sous…"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "Pas dans le chemin de la ressource."
+msgstr "Options de ressource additionnelles."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource from Clipboard"
-msgstr "Modifier le Presse-papiers de la ressource"
+msgstr "Modifier la ressource depuis le presse-papiers"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
msgstr "Copier la ressource"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Make Resource Built-In"
-msgstr "Rendre intégré"
+msgstr "Rendre la ressource intégrée"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -4551,9 +4556,8 @@ msgid "History of recently edited objects."
msgstr "Historique des objets récemment édités."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Ouvrir la documentation"
+msgstr "Ouvrir la documentation pour cet objet."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4564,9 +4568,8 @@ msgid "Filter properties"
msgstr "Filtrer les propriétés"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Manage object properties."
-msgstr "Propriétés de l'objet."
+msgstr "Gérer les propriétés de l'objet."
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4814,9 +4817,8 @@ msgid "Blend:"
msgstr "Mélange :"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Paramètre modifié"
+msgstr "Paramètre modifié :"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5550,11 +5552,11 @@ msgstr "All"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Rechercher modèles, projets et démos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Rechercher des assets (à l'exception des modèles, projets et démos)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5598,7 +5600,7 @@ msgstr "Fichier ZIP de données"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Aperçu audio lecture/pause"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5859,13 +5861,12 @@ msgstr "Modifier les ancres"
#: 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 ""
-"Remplacement de la Caméra du Jeu\n"
-"Remplace la caméra du jeu par la caméra de la fenêtre d'affichage de "
+"Remplacement de la caméra du projet\n"
+"Remplace la caméra du projet par la caméra de la fenêtre d'affichage de "
"l'editeur."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5875,6 +5876,9 @@ msgid ""
"No project instance running. Run the project from the editor to use this "
"feature."
msgstr ""
+"Remplacement de la caméra du projet\n"
+"Pas d'instance du projet en cours d'exécution. Lancez le projet depuis "
+"l'éditeur afin d'utiliser cette fonctionnalité."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5942,31 +5946,27 @@ msgstr "Mode sélection"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Supprimer le nœud sélectionné ou la transition."
+msgstr "Glisser : Tourner le nœud sélectionné autour du pivot."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Glisser : déplacer"
+msgstr "Alt + Glisser : Déplacer le nœud sélectionné."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Supprimer le nœud sélectionné ou la transition."
+msgstr "V : Définir la position du pivot pour le nœud sélectionné."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Afficher une liste de tous les objets à la position cliquée\n"
-"(identique à Alt+Bouton droit en mode sélection)."
+"Alt + Clic droit : Afficher une liste de tous les nœuds à la position "
+"cliquée, y compris les nœuds verrouillés."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "Clic droit : Ajouter un nœud à la position cliquée."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6204,14 +6204,12 @@ msgid "Clear Pose"
msgstr "Vider la pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add Node Here"
-msgstr "Ajouter un nœud"
+msgstr "Ajouter un nœud ici"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Instance Scene Here"
-msgstr "Instancier scène(s)"
+msgstr "Instancer une scène ici"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6227,49 +6225,43 @@ msgstr "Vue panoramique"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Zoomer à 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Zoomer à 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Zoomer à 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Dézoomer"
+msgstr "Zoomer à 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Dézoomer"
+msgstr "Zoomer à 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Dézoomer"
+msgstr "Zoomer à 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Dézoomer"
+msgstr "Zoomer à 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Dézoomer"
+msgstr "Zoomer à 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Dézoomer"
+msgstr "Zoomer à 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Zoomer à 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6516,9 +6508,8 @@ msgid "Couldn't create a single convex collision shape."
msgstr "Impossible de créer une forme de collision convexe unique."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Shape"
-msgstr "Créer une forme convexe unique"
+msgstr "Créer une forme convexe simplifiée"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Shape"
@@ -6557,9 +6548,8 @@ msgid "No mesh to debug."
msgstr "Aucun maillage à déboguer."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "Le modèle n'a pas d'UV dans cette couche"
+msgstr "Le maillage n'a pas d'UV dans la couche %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6628,9 +6618,8 @@ msgstr ""
"collisions."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Simplified Convex Collision Sibling"
-msgstr "Créer une seule collision convexe sœur"
+msgstr "Créer une collision sœur convexe simplifiée"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6638,20 +6627,23 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Créé une forme de collision complexe simplifiée.\n"
+"Cela est similaire à une forme de collision, mais peut résulter en une "
+"géométrie plus simple mais moins précise."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
msgstr "Créer plusieurs collisions convexes sœurs"
#: 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 ""
-"Crée une forme de collision basée sur les polygones.\n"
-"Il s'agit d'une performance à mi-chemin entre les deux options ci-dessus."
+"Crée une forme de collision basée sur des polygones.\n"
+"Il s'agit d'une performance à mi-chemin entre une forme unique de collision "
+"convexe et une collision basée sur des polygones."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -7301,24 +7293,20 @@ msgid "ResourcePreloader"
msgstr "ResourcePreloader"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Retourner horizontalement"
+msgstr "Retourner les Portals"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Compte de Points Générés :"
+msgstr "Générer des points Room"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Compte de Points Générés :"
+msgstr "Générer des points"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Retourner horizontalement"
+msgstr "Retourner le Portal"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7882,20 +7870,17 @@ msgid "None"
msgstr "Aucun"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Mode rotation"
+msgstr "Rotation"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Translater :"
+msgstr "Translation"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Échelle :"
+msgstr "Mode mise à l'échelle"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7918,52 +7903,44 @@ msgid "Animation Key Inserted."
msgstr "Clé d'animation insérée."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Tangage (latéral)"
+msgstr "Tangage :"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Azimuth :"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Taille : "
+msgstr "Taille :"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Objets dessinés"
+msgstr "Objets dessinés :"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Modifications de materiau"
+msgstr "Changements de matériau :"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Modification de shader"
+msgstr "Changements de shader :"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Modifications de surface"
+msgstr "Changements de surface :"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Appels de graphes"
+msgstr "Appels de dessin :"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Vertex"
+msgstr "Sommets :"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS : %d (%s ms)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -8120,9 +8097,8 @@ msgid "Freelook Slow Modifier"
msgstr "Ralentissement de la vue libre"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Camera Preview"
-msgstr "Changer la taille d'une caméra"
+msgstr "Activer la prévisualisation de la caméra"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -8145,9 +8121,8 @@ msgstr ""
"performance en jeu."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Convertir en %s"
+msgstr "Convertir les salles"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8169,7 +8144,6 @@ msgstr ""
"(« rayon x »)."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Aligner les nœuds avec le sol"
@@ -8187,7 +8161,7 @@ msgstr "Utiliser l’aimantation"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Convertit des salles pour l'occlusion culling à l'aide de portails."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8283,9 +8257,8 @@ msgid "View Grid"
msgstr "Afficher la grille"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Paramètres de la vue"
+msgstr "Afficher le Portal culling"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8599,230 +8572,208 @@ msgid "Step:"
msgstr "Pas (s) :"
#: editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Separation:"
-msgstr "Recensements :"
+msgstr "Séparation :"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "TextureRegion"
msgstr "RegionDeTexture"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Couleur"
+msgstr "Couleurs"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Police"
+msgstr "Polices"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Icône"
+msgstr "Icônes"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "Style"
+msgstr "Styleboxes"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} couleur(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Aucune sous-ressource n'a été trouvée."
+msgstr "Pas de couleurs trouvées."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Constantes"
+msgstr "{num} constante(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Constante de couleur."
+msgstr "Pas de constantes trouvées."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} police(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "Aucune sous-ressource n'a été trouvée."
+msgstr "Pas de polices trouvées."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} icône(s)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "Aucune sous-ressource n'a été trouvée."
+msgstr "Pas d'icônes trouvées."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} stylebox(es)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "Aucune sous-ressource n'a été trouvée."
+msgstr "Pas de styleboxes trouvées."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} actuellement sélectionné(s)"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "Rien n'a été sélectionné pour l'importation."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Importer un thème"
+msgstr "Importation des items de thème"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Importation de l'item {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Quitter l'éditeur ?"
+msgstr "Mise à jour de l'éditeur"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Finalizing"
-msgstr "Analyse"
+msgstr "Finalisation"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Filtres :"
+msgstr "Filtre :"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "Avec données"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Sélectionner un nœud"
+msgstr "Sélectionner par type de données :"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Sélectionnez un fractionnement à effacer."
+msgstr "Sélectionner tous les items de couleur visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
msgstr ""
+"Sélectionner tous les items de couleur visibles ainsi que leurs données."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Désélectionner tous les items de couleur visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Sélectionnez d'abord un élément à configurer !"
+msgstr "Sélectionner tous les items de constantes visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
msgstr ""
+"Sélectionner tous les items de constantes visibles ainsi que leurs données."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Désélectionner tous les items de constantes visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Sélectionnez d'abord un élément à configurer !"
+msgstr "Sélectionner tous les items de police visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
msgstr ""
+"Sélectionner tous les items de police visibles ainsi que leurs données."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Désélectionner tous les items de police visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Sélectionnez d'abord un élément à configurer !"
+msgstr "Sélectionner tous les items d'icône visibles."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Sélectionnez d'abord un élément à configurer !"
+msgstr "Sélectionner tous les items d'icône visibles ainsi que leurs données."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Sélectionnez d'abord un élément à configurer !"
+msgstr "Désélectionner tous les items d'icône visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Sélectionner tous les items de stylebox visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
msgstr ""
+"Sélectionner tous les items de stylebox visibles ainsi que leurs données."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "Désélectionner tous les items de stylebox visibles."
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
msgstr ""
+"Attention : Ajouter des données d'icônes peut augmenter considérablement la "
+"taille de votre ressource Theme."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Réduire tout"
+msgstr "Réduire les types."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Développer tout"
+msgstr "Développer les types."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Sélectionner le fichier de modèle"
+msgstr "Sélectionner tous les items du Theme."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Sélectionner des points"
+msgstr "Sélectionner avec les données"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Sélectionne tous les items de thème avec les données d'item."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Tout sélectionner"
+msgstr "Tout déselectionner"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Déselectionne tous les items du Theme."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Importer une scène"
+msgstr "Importer la sélection"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8830,275 +8781,253 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"L'onglet Importer des items a des items sélectionnés. La sélection sera "
+"perdue si vous fermez cette fenêtre.\n"
+"Fermer tout de même ?"
+
+#: 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
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Supprimer tous"
+msgstr "Supprimer tous les items de couleur"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Supprimer l'item"
+msgstr "Renommer l'item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Supprimer tous"
+msgstr "Supprimer tous les items de constante"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Supprimer tous"
+msgstr "Supprimer tous les items de police"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Supprimer tous"
+msgstr "Supprimer tous les items d'icône"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Supprimer tous"
+msgstr "Supprimer tous les items de stylebox"
+
+#: 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
-#, fuzzy
msgid "Add Color Item"
-msgstr "Ajouter des items de classe"
+msgstr "Ajouter un item de couleur"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Ajouter des items de classe"
+msgstr "Ajouter un item de constante"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Ajouter un item"
+msgstr "Ajouter un item de police"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Ajouter un item"
+msgstr "Ajouter un item d'icône"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Ajouter tous les items"
+msgstr "Ajouter un item de stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Supprimer des items de classe"
+msgstr "Renommer l'item de couleur"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Supprimer des items de classe"
+msgstr "Renommer l'item de constante"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Renommer le nœud"
+msgstr "Renommer l'item de police"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Renommer le nœud"
+msgstr "Renommer l'item d'icône"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Supprimer l'élément sélectionné"
+msgstr "Renommer l'item de stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Fichier invalide, pas une disposition de bus audio."
+msgstr "Fichier invalide, car ce n'est pas une ressource de type Theme."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
msgstr ""
+"Fichier invalide, car il est identique à la ressource Theme actuellement en "
+"cours de modification."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Gérer les modèles"
+msgstr "Gérer les items de thème"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Élément modifiable"
+msgstr "Modifier les items"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Type :"
+msgstr "Types :"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Type :"
+msgstr "Ajouter un type :"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Ajouter un item"
+msgstr "Ajouter un item :"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Ajouter tous les items"
+msgstr "Ajouter un item de stylebox"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Supprimer l'item"
+msgstr "Supprimer items :"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr "Supprimer des items de classe"
+msgstr "Supprimer les items de classe"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Supprimer des items de classe"
+msgstr "Supprimer les items personnalisés"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
-msgstr "Supprimer tous"
+msgstr "Supprimer tous les items"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Ajouter un item"
+msgstr "Ajouter un item de thème"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Nom de nœud :"
+msgstr "Ancien nom :"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Importer un thème"
+msgstr "Importer des items"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Par défaut"
+msgstr "Thème par défaut"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Modifier le thème"
+msgstr "Thème de l'éditeur"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Supprimer une ressource"
+msgstr "Sélectionnez une autre ressource Theme :"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Importer un thème"
+msgstr "Autre thème"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Configurer la grille"
+msgstr "Confirmer le renommage d'item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Renommer par lot"
+msgstr "Annuler le renommage d'item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Redéfinition"
+msgstr "Remplacer l'item"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "Désépingler cette StyleBox comme style principal."
#: 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 ""
+"Épingler cette StyleBox comme style principal. Modifier ses propriétés "
+"mettra à jour les mêmes propriétés dans toutes les autres StyleBoxes "
+"appartenant à ce type."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "Type"
+msgstr "Ajouter un type"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Ajouter un item"
+msgstr "Ajouter un item de type"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Type de nœud"
+msgstr "Types de nœud :"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Charger défaut"
+msgstr "Afficher par défaut"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
msgstr ""
+"Afficher les items de type par défaut à côté de ceux qui ont été surchargés."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Redéfinition"
+msgstr "Tout surcharger"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "Surcharge tous les items de type par défaut."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Thème"
+msgstr "Thème :"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "Gérer les modèles d'exportation..."
+msgstr "Gérer les items…"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "Ajoute, supprime, organise et importe des items de thème."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Aperçu"
+msgstr "Ajouter un aperçu"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Aperçu de la mise à jour"
+msgstr "Aperçu par défaut"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Sélectionnez un maillage source :"
+msgstr "Sélectionner une scène UI :"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
+"Active le sélectionneur de contrôle, qui permet de sélectionner visuellement "
+"des types de contrôles à modifier."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
-msgstr "Activer / Désactiver bouton"
+msgstr "Bouton à bascule (toggle)"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled Button"
@@ -9110,7 +9039,7 @@ msgstr "Item"
#: editor/plugins/theme_editor_preview.cpp
msgid "Disabled Item"
-msgstr "Élément Désactivé"
+msgstr "Item désactivé"
#: editor/plugins/theme_editor_preview.cpp
msgid "Check Item"
@@ -9129,9 +9058,8 @@ msgid "Checked Radio Item"
msgstr "Item radio coché"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Séparateur nommé."
+msgstr "Séparateur nommé"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9184,19 +9112,22 @@ msgstr "Possède,Plusieurs,Options"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
msgstr ""
+"Chemin invalide. La ressource PackedScene a probablement été déplacée ou "
+"supprimée."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
msgstr ""
+"Ressource PackedScene invalide. La scène doit avoir un nœud de type Control "
+"à sa racine."
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "Fichier invalide, pas une disposition de bus audio."
+msgstr "Fichier invalide, pas une ressource PackedScene."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "Recharge la scène pour refléter son état le plus actuel."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -10605,9 +10536,8 @@ msgid "VisualShader"
msgstr "VisualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Modifier la propriété visuelle"
+msgstr "Modifier la propriété visuelle :"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10733,9 +10663,8 @@ msgid "Script"
msgstr "Script"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Mode d'exportation des scripts :"
+msgstr "Mode d'exportation GDScript :"
#: editor/project_export.cpp
msgid "Text"
@@ -10743,21 +10672,20 @@ msgstr "Texte"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Bytecode compilé (chargement plus rapide)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "Chiffré (fournir clé ci-dessous)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "Clé de chiffrement invalide (doit comporter 64 caractères)"
+msgstr ""
+"Clé de chiffrement invalide (doit comporter 64 caractères hexadécimaux)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "Clé de chiffrement des scripts (256 bits en hexadécimal) :"
+msgstr "Clé de chiffrement GDScript (256 bits en hexadécimal) :"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10832,7 +10760,6 @@ msgid "Imported Project"
msgstr "Projet importé"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Nom du projet invalide."
@@ -11061,14 +10988,12 @@ msgid "Are you sure to run %d projects at once?"
msgstr "Voulez-vous vraiment lancer %d projets à la fois ?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "Sélectionner appareil depuis la liste"
+msgstr "Retirer %d projets de la liste ?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Sélectionner appareil depuis la liste"
+msgstr "Retirer ce projet de la liste ?"
#: editor/project_manager.cpp
msgid ""
@@ -11102,9 +11027,8 @@ msgid "Project Manager"
msgstr "Gestionnaire de projets"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Projets"
+msgstr "Projets locaux"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11115,23 +11039,20 @@ msgid "Last Modified"
msgstr "Dernière modification"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Exporter le projet"
+msgstr "Modifier le projet"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Renommer le projet"
+msgstr "Lancer le projet"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "Scanner"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Projets"
+msgstr "Scanner des projets"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -11142,14 +11063,12 @@ msgid "New Project"
msgstr "Nouveau projet"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Projet importé"
+msgstr "Importer un projet"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Renommer le projet"
+msgstr "Retirer le projet"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11160,9 +11079,8 @@ msgid "About"
msgstr "À propos"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Bibliothèque d'assets"
+msgstr "Projets de l'Asset Library"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11174,7 +11092,7 @@ msgstr "Supprimer tout"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "Supprimer les contenus du projet également (pas d'annulation !)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11189,12 +11107,10 @@ msgstr ""
"Voulez-vous explorer des exemples de projets officiels dans l'Asset Library ?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Filtrer les propriétés"
+msgstr "Filtrer parmi les projets"
#: editor/project_manager.cpp
-#, fuzzy
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 "
@@ -11211,7 +11127,7 @@ msgstr "Touche "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "Touche physique"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11259,7 +11175,7 @@ msgstr "Périphérique"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (physique)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11402,23 +11318,23 @@ msgid "Override for Feature"
msgstr "Écrasement d'un paramètre, dédié à un tag de fonctionnalité"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Ajouter une traduction"
+msgstr "Ajouter %d traductions"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "Supprimer la traduction"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "Réaffectation (remap) des ressources ; Ajouter une réaffectation"
+msgstr ""
+"Réaffectation (remap) des ressources par traduction : Ajouter %d chemin(s)"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "Réaffectation (remap) des ressources ; Ajouter une réaffectation"
+msgstr ""
+"Réaffectation (remap) des ressources par traduction : Ajouter %d "
+"réaffectation(s)"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11450,7 +11366,7 @@ msgstr "Général"
#: editor/project_settings_editor.cpp
msgid "Override For..."
-msgstr "Surcharge pour…"
+msgstr "Surcharger pour…"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "The editor must be restarted for changes to take effect."
@@ -11862,12 +11778,16 @@ msgstr "Supprimer le noeud \"%s\" ?"
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
msgstr ""
+"Pour sauvegarder la branche en tant que scène, il faut qu'une scène soit "
+"ouverte dans l'éditeur."
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires selecting only one node, but you have "
"selected %d nodes."
msgstr ""
+"Pour sauvegarder la branche en tant que scène, il faut sélectionner "
+"seulement un nœud, mais vous avez sélectionné %d nœuds."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11876,6 +11796,12 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"Impossible de sauvegarder la branche du nœud racine comme une scène "
+"instanciée.\n"
+"Pour créer une copie modifiable de la scène actuelle, dupliquez-la à l'aide "
+"du menu contextuel du dock Système de fichiers\n"
+"ou créez une scène héritée en utilisant Scène > Nouvelle scène héritée... à "
+"la place."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11883,6 +11809,10 @@ msgid ""
"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 ""
+"Impossible de sauvegarder la branche d'une scène déjà instanciée.\n"
+"Pour créer une variation d'une scène, vous pouvez créer une scène héritée "
+"basée sur la scène instanciée en utilisant Scène > Nouvelle scène héritée... "
+"à la place."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12291,6 +12221,8 @@ msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
msgstr ""
+"Avertissement : Il n'est généralement pas souhaitable que le nom du script "
+"soit le même que celui d'un type intégré."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12362,7 +12294,7 @@ msgstr "Copier l'erreur"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "Ouvrir les sources C++ sur GitHub"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12541,6 +12473,16 @@ msgstr "Changer la hauteur de la forme du cylindre"
msgid "Change Ray Shape Length"
msgstr "Changer la longueur d'une forme en rayon"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Définir la position du point de la courbe"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Définir la position du point de la courbe"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Changer le rayon du cylindre"
@@ -12656,12 +12598,11 @@ msgstr "L'objet ne peut fournir une longueur."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "Exporter une bibliothèque de maillages"
+msgstr "Exporter le Maillage GLTF2"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Exporter..."
+msgstr "Exporter en GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12704,9 +12645,8 @@ msgid "GridMap Paint"
msgstr "Peinture GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "Remplissage de la sélection de GridMap"
+msgstr "Sélection de la GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12960,14 +12900,12 @@ msgid "Add Output Port"
msgstr "Ajouter un port de sortie"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "Changer le type"
+msgstr "Changer le Type de Port"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "Changer le nom du port d'entrée"
+msgstr "Changer le Nom du Port"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -13353,38 +13291,33 @@ msgid "Select device from the list"
msgstr "Sélectionner appareil depuis la liste"
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Running on %s"
-msgstr ""
+msgstr "En cours d'exécution sur %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting APK..."
-msgstr "Tout exporter"
+msgstr "Exportation de l'APK..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Uninstalling..."
-msgstr "Désinstaller"
+msgstr "Désinstallation..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Installing to device, please wait..."
-msgstr "Chargement en cours, veuillez patienter..."
+msgstr "Installation sur l'appareil, veuillez patienter..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not install to device: %s"
-msgstr "Impossible de démarrer le sous-processus !"
+msgstr "Impossible d'installer sur l'appareil : %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Running on device..."
-msgstr "Lancement du script personnalisé…"
+msgstr "En cours d'exécution sur l'appareil..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not execute on device."
-msgstr "Impossible de créer le dossier."
+msgstr "Impossible d'exécuter sur l'appareil."
#: platform/android/export/export.cpp
msgid "Unable to find the 'apksigner' tool."
@@ -13509,46 +13442,49 @@ msgstr ""
"est activée."
#: platform/android/export/export.cpp
+#, fuzzy
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 ""
+"Impossible de trouver 'apksigner'.\n"
+"Veuillez vérifier que la commande est disponible dans le dossier build-tools "
+"du SDK Android.\n"
+"Le paquet sortant %s est non signé."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "Signing debug %s..."
-msgstr ""
+msgstr "Signature du debug %s..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Signing release %s..."
-msgstr ""
-"Analyse des fichiers en cours,\n"
-"Veuillez patienter..."
+msgstr "Signature de la version %s..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not find keystore, unable to export."
-msgstr "Impossible d'ouvrir le modèle pour exportation :"
+msgstr "Impossible de trouver le keystore, impossible d'exporter."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "'apksigner' a terminé avec l'erreur #%d"
#: platform/android/export/export.cpp
#, fuzzy
msgid "Verifying %s..."
-msgstr "Ajout de %s..."
+msgstr "Vérification de %s..."
#: platform/android/export/export.cpp
+#, fuzzy
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "La vérification de %s avec 'apksigner' a échoué."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting for Android"
-msgstr "Tout exporter"
+msgstr "Exportation vers Android"
#: platform/android/export/export.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
@@ -13570,7 +13506,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "Format d'export non supporté !\n"
#: platform/android/export/export.cpp
msgid ""
@@ -13594,20 +13530,20 @@ msgstr ""
"Veuillez réinstaller la version d'Android depuis le menu 'Projet'."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"Impossible d'écraser les fichiers res://android/build/res/*.xml avec le nom "
+"du projet"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr ""
-"Impossible de modifier le fichier project.godot dans le chemin du projet."
+msgstr "Impossible d'exporter les fichiers du projet vers le projet gradle\n"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not write expansion package file!"
-msgstr "Impossible d'écrire le fichier :"
+msgstr "Impossible d'écrire le fichier du paquet d'expansion !"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -13638,37 +13574,42 @@ msgstr ""
#: platform/android/export/export.cpp
#, fuzzy
msgid "Package not found: %s"
-msgstr "Animation introuvable : « %s »"
+msgstr "Paquet introuvable : « %s »"
#: platform/android/export/export.cpp
#, fuzzy
msgid "Creating APK..."
-msgstr "Création des contours..."
+msgstr "Création du fichier APK..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "Impossible d'ouvrir le modèle pour exportation :"
+msgstr ""
+"Impossible de trouver le modèle de l'APK à exporter :\n"
+"%s"
#: platform/android/export/export.cpp
+#, fuzzy
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 ""
+"Bibliothèques manquantes dans le modèle d'export pour les architectures "
+"sélectionnées : %s.\n"
+"Veuillez construire un modèle avec toutes les bibliothèques requises, ou "
+"désélectionner les architectures manquantes dans le préréglage de l'export."
#: platform/android/export/export.cpp
#, fuzzy
msgid "Adding files..."
-msgstr "Ajout de %s..."
+msgstr "Ajout de fichiers..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files"
-msgstr "Impossible d'écrire le fichier :"
+msgstr "Impossible d'exporter les fichiers du projet"
#: platform/android/export/export.cpp
msgid "Aligning APK..."
@@ -13676,7 +13617,7 @@ msgstr "Alignement de l'APK…"
#: platform/android/export/export.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "Impossible de décompresser l'APK temporaire non aligné."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13723,9 +13664,8 @@ msgid "Could not write file:"
msgstr "Impossible d'écrire le fichier :"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Impossible d'écrire le fichier :"
+msgstr "Impossible de lire le fichier :"
#: platform/javascript/export/export.cpp
#, fuzzy
@@ -13733,14 +13673,12 @@ msgid "Could not read HTML shell:"
msgstr "Impossible de lire le shell HTML personnalisé :"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "Impossible de créer le dossier."
+msgstr "Impossible de créer le répertoire du serveur HTTP :"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Erreur d'enregistrement de la scène."
+msgstr "Erreur de démarrage du serveur HTTP :"
#: platform/osx/export/export.cpp
#, fuzzy
@@ -13748,8 +13686,9 @@ msgid "Invalid bundle identifier:"
msgstr "Identifiant invalide :"
#: platform/osx/export/export.cpp
+#, fuzzy
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "Certification : signature du code requise."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
@@ -14206,11 +14145,16 @@ msgstr ""
"A la place utilisez une BakedLightMap."
#: scene/3d/gi_probe.cpp
+#, fuzzy
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 ""
+"La propriété GIProbe Compress a été déclarée comme obsolète à cause de bugs "
+"connus et n'a plus aucun effet.\n"
+"Pour supprimer cette avertissement, désactivez la propriété Compress du "
+"GIProbe."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14304,15 +14248,15 @@ msgstr "Node A et Node B doivent être des PhysicsBody différents"
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Le RoomManager ne doit pas être enfant ou grand-enfant d'un Portal."
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Un Room ne doit pas être enfant ou petit-enfant d'un Portal."
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Un RoomGroup ne doit pas être enfant ou petit-enfant d'un Portal."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -14362,6 +14306,42 @@ msgstr ""
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 "Ce corps sera ignoré jusqu'à ce que vous définissiez un maillage."
@@ -15125,9 +15105,6 @@ msgstr "Les constantes ne peuvent être modifiées."
#~ msgid "Local Coords"
#~ msgstr "Coordonnées locales"
-#~ msgid "Snap Mode (%s)"
-#~ msgstr "Mode d'aimantation (%s)"
-
#~ msgid "Tool Select"
#~ msgstr "Outil sélection"
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index 98fe774878..872463b1a9 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -337,6 +337,7 @@ msgstr ""
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 ""
@@ -361,10 +362,26 @@ msgstr "Cruthaigh"
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
+#, fuzzy
+msgid "animation"
+msgstr "CrannBeochan"
+
#: 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 ""
@@ -920,7 +937,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2214,6 +2231,17 @@ 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 ""
@@ -2994,10 +3022,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3602,6 +3626,14 @@ 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 ""
@@ -8288,6 +8320,12 @@ msgid ""
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 ""
@@ -8313,6 +8351,12 @@ 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 ""
@@ -11730,6 +11774,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13330,6 +13382,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/gl.po b/editor/translations/gl.po
index 9b97e45e8a..054b62690d 100644
--- a/editor/translations/gl.po
+++ b/editor/translations/gl.po
@@ -6,18 +6,19 @@
# Andy Barcia <andybarcia4@gmail.com>, 2021.
# PokeGalaico <abloodyfreaks@gmail.com>, 2021.
# Kkai <kaieltroll@gmail.com>, 2021.
+# davidrogel <david.rogel.pernas@icloud.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2021-04-26 22:32+0000\n"
-"Last-Translator: Kkai <kaieltroll@gmail.com>\n"
+"PO-Revision-Date: 2021-08-12 14:48+0000\n"
+"Last-Translator: davidrogel <david.rogel.pernas@icloud.com>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/godot-engine/"
"godot/gl/>\n"
"Language: gl\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.7-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -339,6 +340,7 @@ msgstr "Cambiar Modo de Bucle da Animación"
msgid "Remove Anim Track"
msgstr "Eliminar Pista de Animación"
+#. 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 "Crear nova pista para %s e engadir chave?"
@@ -363,10 +365,27 @@ msgstr "Crear"
msgid "Anim Insert"
msgstr "Engadir Animación"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Animación"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "Un AnimationPlayer non pode animarse a si mesmo, só a outros players."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Non existe a propiedade '%s'."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Crear e Engadir Animación"
@@ -943,9 +962,9 @@ msgstr "Crear Novo %s"
msgid "No results for \"%s\"."
msgstr "Non houbo resultado para \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Non hai descrición dispoñible para %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1140,7 +1159,7 @@ msgstr "Moitas grazas de parte da comunidade de Godot!"
#: editor/editor_about.cpp editor/editor_node.cpp editor/project_manager.cpp
msgid "Click to copy."
-msgstr ""
+msgstr "Clic para copiar."
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
@@ -1724,7 +1743,7 @@ msgstr "Importación"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Permite ver e editar escenas 3D."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
@@ -2293,6 +2312,17 @@ msgid "New Window"
msgstr "Nova Xanela"
#: 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 "Xira cando o editor actualiza a pantalla."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Os recursos importados non se poden gardar."
@@ -3161,10 +3191,6 @@ msgid "Save & Restart"
msgstr "Gardar e Reinicar"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Xira cando o editor actualiza a pantalla."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Actualizar de Maneira Continua"
@@ -3797,6 +3823,15 @@ msgid "Download from:"
msgstr "Erro na Descarga"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Abrir no Explorador de Arquivos"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8606,6 +8641,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Eliminar Tódolos Marcapáxinas"
@@ -8636,6 +8677,12 @@ msgid "Remove All StyleBox Items"
msgstr "Eliminar Tódolos Marcapáxinas"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Engadir Elemento"
@@ -12185,6 +12232,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13860,6 +13915,42 @@ msgstr ""
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 "Este corpo será ignorado ata que se lle sea asignado unha malla."
diff --git a/editor/translations/he.po b/editor/translations/he.po
index bbe0ebbe08..d0a09565de 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -355,6 +355,7 @@ msgstr "שינוי מצב לולאת הנפשה"
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 "האם ליצור רצועה חדשה ל%s ולהכניס מפתח?"
@@ -379,10 +380,28 @@ msgstr "יצירה"
msgid "Anim Insert"
msgstr "הוסף הנפשה"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "מצב הצמדה (%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 "הנפשה"
+
#: 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
+#, fuzzy
+msgid "property '%s'"
+msgstr "לא קיים מאפיין ‚%s’."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "יצירה והוספה של הנפשה"
@@ -960,7 +979,7 @@ msgstr "יצירת %s חדש"
msgid "No results for \"%s\"."
msgstr "אין תוצאות עבור \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2309,6 +2328,17 @@ 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 "משאבים מיובאים לא נשמרו."
@@ -3143,10 +3173,6 @@ msgid "Save & Restart"
msgstr "שמירה והפעלה מחדש"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "מסתובב כאשר חלון העורך מצויר מחדש."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "עדכון רציף"
@@ -3789,6 +3815,16 @@ msgid "Download from:"
msgstr "שגיאת הורדה"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "הפעלה בדפדפן"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "שגיאת העתקה"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8747,6 +8783,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "הסרת כל נקודות העצירה"
@@ -8777,6 +8819,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "מועדפים:"
@@ -12388,6 +12436,14 @@ msgstr "שינוי גובה לצורת גליל"
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "שינוי רדיוס גליל"
@@ -14113,6 +14169,42 @@ msgstr ""
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 "תהיה התעלמות מגוף זה עד שתקבע רשת."
@@ -14643,9 +14735,6 @@ msgstr "אי אפשר לשנות קבועים."
#~ msgid "Local Coords"
#~ msgstr "נקודות ציון מקומיות"
-#~ msgid "Snap Mode (%s)"
-#~ msgstr "מצב הצמדה (%s)"
-
#~ msgid "Project List"
#~ msgstr "רשימת המיזמים"
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index a4e7d4ae72..916e6fd01d 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -348,6 +348,7 @@ msgstr "एनिमेशन लूप मोड बदलें"
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 "% एस के लिए नया ट्रैक बनाएं और कुंजी डालें?"
@@ -372,10 +373,27 @@ msgstr "बनाना"
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
+#, fuzzy
+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
+#, fuzzy
+msgid "property '%s'"
+msgstr "प्रोपर्टी"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "अनीम बनाएं और डालें"
@@ -947,7 +965,7 @@ msgstr "नया%s बनाएं"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2289,6 +2307,17 @@ 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 "इंपोर्टेड रेसोर्सेस सेव नहीं कर सकते."
@@ -3130,10 +3159,6 @@ msgid "Save & Restart"
msgstr "सहेजें और पुनः आरंभ करें"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "जब संपादक खिड़की फिर से खींचता है तो स्पिन करता है।"
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "लगातार अपडेट करें"
@@ -3785,6 +3810,15 @@ msgid "Download from:"
msgstr "डाउनलोड"
#: editor/export_template_manager.cpp
+#, fuzzy
+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 ""
@@ -8561,6 +8595,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "आइटम निकालें"
@@ -8591,6 +8631,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "पसंदीदा में जोड़ें"
@@ -12124,6 +12170,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13771,6 +13825,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index ea48ef0246..37d517cba0 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -340,6 +340,7 @@ msgstr "Promijeni Način Ponavljanja Animacije"
msgid "Remove Anim Track"
msgstr "Ukloni Stazu Animacije"
+#. 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 "Stvori NOVU stazu za %s i umetni ključ?"
@@ -364,10 +365,26 @@ msgstr "Stvori"
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
+#, fuzzy
+msgid "animation"
+msgstr "Animacija"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "Animator ne može animirati sebe, samo druge animatore."
+#. 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 "Anim Stvori & Umetni"
@@ -927,7 +944,7 @@ msgstr "Napravi novi %s"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2240,6 +2257,17 @@ 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 ""
@@ -3021,10 +3049,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Kontinuirano ažuriraj"
@@ -3635,6 +3659,15 @@ msgid "Download from:"
msgstr ""
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Otvori u Inspektoru"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8337,6 +8370,12 @@ msgid ""
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 ""
@@ -8364,6 +8403,12 @@ 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 ""
@@ -11805,6 +11850,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13413,6 +13466,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index 3af983ff18..c822f5bd53 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -351,6 +351,7 @@ msgstr "Animáció Összefűzés Módjának Változtatása"
msgid "Remove Anim Track"
msgstr "Animáció Sáv Eltávolítása"
+#. 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 "Létrehoz ÚJ sávot a következőhöz: %s, és beszúrja a kulcsot?"
@@ -375,12 +376,29 @@ msgstr "Létrehozás"
msgid "Anim Insert"
msgstr "Animáció - Beszúrás"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Animáció"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"AnimationPlayer nem tudja önmagát animálni, csak más AnimationPlayer "
"elemeket."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Tulajdonság"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Animáció - Létrehozás és Beillesztés"
@@ -959,7 +977,7 @@ msgstr "Új %s létrehozása"
msgid "No results for \"%s\"."
msgstr "Nincs találat a következőre: \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2309,6 +2327,17 @@ msgid "New Window"
msgstr "Új ablak"
#: 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 "Pörög, amikor a szerkesztőablak újrarajzolódik."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Az importált erőforrások nem menthetők."
@@ -3178,10 +3207,6 @@ msgid "Save & Restart"
msgstr "Mentés és újraindítás"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Pörög, amikor a szerkesztőablak újrarajzolódik."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Folyamatos frissítés"
@@ -3825,6 +3850,16 @@ msgid "Download from:"
msgstr "Letöltési Hiba"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Megnyitás a Fájlkezelőben"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Hiba Másolása"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8609,6 +8644,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Összes könyvjelző eltávolítása"
@@ -8639,6 +8680,12 @@ msgid "Remove All StyleBox Items"
msgstr "Összes könyvjelző eltávolítása"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Elem Hozzáadása"
@@ -12104,6 +12151,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Görbe Pont Pozíció Beállítása"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Görbe Pont Pozíció Beállítása"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13734,6 +13791,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/id.po b/editor/translations/id.po
index ccc5865b85..3426bd0962 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -368,6 +368,7 @@ msgstr "Ubah Mode Perulangan Animasi"
msgid "Remove Anim Track"
msgstr "Hapus Trek Anim"
+#. 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 "Buat track BARU untuk %s dan masukkan tombol?"
@@ -392,11 +393,29 @@ msgstr "Buat"
msgid "Anim Insert"
msgstr "Sisipkan Anim"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Tidak dapat membuka '%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 "Animasi"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"AnimationPlayer tidak bisa menganimasikan diri sendiri, gunakan pemutar lain."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Tidak ada properti '%s'."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Buat & Sisipkan Anim"
@@ -972,7 +991,7 @@ msgstr "Buat %s baru"
msgid "No results for \"%s\"."
msgstr "Tidak ada hasil untuk \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2322,6 +2341,17 @@ msgid "New Window"
msgstr "Jendela Baru"
#: 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 "Putar ketika jendela editor digambar ulang."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Resource yang diimpor tidak dapat disimpan."
@@ -3180,10 +3210,6 @@ msgid "Save & Restart"
msgstr "Simpan & Mulai Ulang"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Putar ketika jendela editor digambar ulang."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Perbarui Terus-menerus"
@@ -3845,6 +3871,16 @@ msgid "Download from:"
msgstr "Unduhan Gagal"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Jalankan di Peramban"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Salin Galat"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8712,6 +8748,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Hapus Semua Item"
@@ -8742,6 +8784,12 @@ msgid "Remove All StyleBox Items"
msgstr "Hapus Semua Item"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Tambah Item Kelas"
@@ -12412,6 +12460,16 @@ msgstr "Ubah Tinggi Bentuk Silinder"
msgid "Change Ray Shape Length"
msgstr "Ubah Panjang Shape Ray"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Atur Posisi Titik Kurva"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Atur Posisi Titik Kurva"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Ubah Radius Silinder"
@@ -14186,6 +14244,42 @@ msgstr ""
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 "Body ini akan diabaikan hingga Anda mengatur mesh-nya."
@@ -15242,9 +15336,6 @@ msgstr "Konstanta tidak dapat dimodifikasi."
#~ msgid "I see..."
#~ msgstr "Mengerti..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Tidak dapat membuka '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Duh"
diff --git a/editor/translations/is.po b/editor/translations/is.po
index 916be97fb4..e536b0a8f6 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -360,6 +360,7 @@ msgstr ""
msgid "Remove Anim Track"
msgstr "Fjarlægja Anim track"
+#. 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 ""
@@ -384,10 +385,26 @@ msgstr ""
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
+#, fuzzy
+msgid "animation"
+msgstr "Stillið breyting á:"
+
#: 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 ""
@@ -954,7 +971,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2253,6 +2270,17 @@ 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 ""
@@ -3036,10 +3064,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "Samfellt"
@@ -3648,6 +3672,15 @@ msgid "Download from:"
msgstr ""
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Opna Verkefna Stjóra?"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8376,6 +8409,12 @@ msgid ""
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 ""
@@ -8403,6 +8442,12 @@ 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 ""
@@ -11873,6 +11918,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13487,6 +13540,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/it.po b/editor/translations/it.po
index cec4cf1beb..c3aa84d4b6 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -37,7 +37,7 @@
# Stefano Merazzi <asso99@hotmail.com>, 2019.
# Sinapse X <sinapsex13@gmail.com>, 2019.
# Micila Micillotto <micillotto@gmail.com>, 2019, 2020, 2021.
-# Mirko Soppelsa <miknsop@gmail.com>, 2019, 2020.
+# Mirko Soppelsa <miknsop@gmail.com>, 2019, 2020, 2021.
# No <kingofwizards.kw7@gmail.com>, 2019.
# StarFang208 <polaritymanx@yahoo.it>, 2019.
# Katia Piazza <gydey@ridiculousglitch.com>, 2019.
@@ -64,8 +64,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-26 14:18+0000\n"
-"Last-Translator: Riteo Siuga <riteo@posteo.net>\n"
+"PO-Revision-Date: 2021-08-10 21:39+0000\n"
+"Last-Translator: Mirko <miknsop@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
"Language: it\n"
@@ -73,7 +73,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.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -394,6 +394,7 @@ msgstr "Cambia la modalità del ciclo di un'animazione"
msgid "Remove Anim Track"
msgstr "Rimuovi una traccia d'animazione"
+#. 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 "Creare una NUOVA traccia per %s e inserire la chiave?"
@@ -418,10 +419,28 @@ msgstr "Crea"
msgid "Anim Insert"
msgstr "Inserisci un'animazione"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Impossibile aprire '%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 "Animazione"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer non può animare se stesso, solo altri nodi."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Non esiste nessuna proprietà \"%s\"."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Crea un'animazione e inserisci un fotogramma chiave"
@@ -1005,7 +1024,7 @@ msgstr "Crea un nuovo %s"
msgid "No results for \"%s\"."
msgstr "Nessun risultato per \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2372,6 +2391,17 @@ msgid "New Window"
msgstr "Nuova Finestra"
#: 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 "Gira quando la finestra dell'editor viene ridisegnata."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Le risorse importate non possono essere salvate."
@@ -3248,10 +3278,6 @@ msgid "Save & Restart"
msgstr "Salva e riavvia"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Gira quando la finestra dell'editor viene ridisegnata."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Aggiorna continuamente"
@@ -3499,7 +3525,6 @@ msgid "Inclusive"
msgstr "Inclusivo"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Self"
msgstr "Se stesso"
@@ -3930,6 +3955,16 @@ msgid "Download from:"
msgstr "Errore durante il download"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Esegui nel Browser"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Copia Errore"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -7908,9 +7943,8 @@ msgid "Translate"
msgstr "Trasla:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Scala:"
+msgstr "Scala"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -8855,6 +8889,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Rimuovi tutti gli elementi"
@@ -8885,6 +8925,12 @@ msgid "Remove All StyleBox Items"
msgstr "Rimuovi tutti gli elementi"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Aggiungi Elementi di Classe"
@@ -12574,6 +12620,16 @@ msgstr "Modifica Altezza di Forma del Cilindro"
msgid "Change Ray Shape Length"
msgstr "Cambia lunghezza Ray Shape"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Imposta Posizione Punto Curva"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Imposta Posizione Punto Curva"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Modifica Raggio del Cilindro"
@@ -13569,7 +13625,7 @@ msgstr ""
#: platform/android/export/export.cpp
#, fuzzy
msgid "Exporting for Android"
-msgstr "Esportando Tutto"
+msgstr "Esportazione per Android"
#: platform/android/export/export.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
@@ -14377,6 +14433,42 @@ msgstr ""
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 "Questo corpo verrà ignorato fino a quando non imposterai una mesh."
@@ -15641,9 +15733,6 @@ msgstr "Le constanti non possono essere modificate."
#~ msgid "I see..."
#~ msgstr "Capisco..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Impossibile aprire '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Ugh"
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 83e544e5b5..3ee6d0b49d 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -15,7 +15,7 @@
# Tohru Ike (rokujyouhitoma) <rokujyouhitomajp@gmail.com>, 2017-2018.
# yu tang <0011solo@gmail.com>, 2018.
# zukkun <zukkun@gmail.com>, 2018.
-# sugusan <sugusan.development@gmail.com>, 2018, 2019.
+# sugusan <sugusan.development@gmail.com>, 2018, 2019, 2021.
# Nathan Lovato <nathan.lovato.art@gmail.com>, 2018.
# nyanode <akaruooyagi@yahoo.co.jp>, 2018.
# nitenook <admin@alterbaum.net>, 2018, 2019, 2020, 2021.
@@ -37,8 +37,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-29 02:33+0000\n"
-"Last-Translator: nitenook <admin@alterbaum.net>\n"
+"PO-Revision-Date: 2021-08-12 14:48+0000\n"
+"Last-Translator: sugusan <sugusan.development@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
"Language: ja\n"
@@ -46,7 +46,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.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -367,6 +367,7 @@ msgstr "アニメーションのループモードを変更"
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 "%s の新規トラックを作成し、キーを挿入しますか?"
@@ -391,12 +392,30 @@ msgstr "作成"
msgid "Anim Insert"
msgstr "アニメーション挿入"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "'..'を処理できません"
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "property '%s'"
+msgstr "プロパティ '%s' は存在しません。"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "アニメーションの作成と挿入"
@@ -972,9 +991,9 @@ msgstr "%s を新規作成"
msgid "No results for \"%s\"."
msgstr "\"%s\" の結果はありません。"
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "%s についての説明はありません。"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1166,7 +1185,7 @@ msgstr "Godot コミュニティより感謝を!"
#: editor/editor_about.cpp editor/editor_node.cpp editor/project_manager.cpp
msgid "Click to copy."
-msgstr ""
+msgstr "クリックしてコピーします。"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
@@ -2325,6 +2344,17 @@ 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 "インポートしたリソースは保存できません。"
@@ -3185,10 +3215,6 @@ msgid "Save & Restart"
msgstr "保存して再起動"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "エディタ ウィンドウの再描画時にスピンします。"
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "継続的に更新"
@@ -3634,11 +3660,11 @@ msgstr "ノードからインポート:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "これらのテンプレートがあるフォルダを開きます。"
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "これらのテンプレートをアンインストールします。"
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3652,7 +3678,7 @@ msgstr "ミラーを取得しています。しばらくお待ちください...
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "ダウンロードを開始しています..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3695,7 +3721,7 @@ msgstr "リクエストは失敗しました。"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "ダウンロードが完了しました。テンプレートを展開しています..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3820,10 +3846,12 @@ 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 ""
+msgstr "エクスポート テンプレートはインストールされており、利用できます。"
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3849,8 +3877,18 @@ msgid "Download from:"
msgstr "ダウンロードエラー"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "ブラウザで実行"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "エラーをコピー"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "ダウンロードしてインストール"
#: editor/export_template_manager.cpp
msgid ""
@@ -4052,35 +4090,32 @@ msgid "Collapse All"
msgstr "すべて折りたたむ"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "ファイル検索"
+msgstr "ファイルの並び替え"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "名前 (昇順) で並び替え"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "名前 (降順) で並び替え"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "種類 (昇順) で並び替え"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "種類 (降順) で並び替え"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "最終更新"
+msgstr "更新日時が新しい順で並び替え"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "最終更新"
+msgstr "更新日時が古い順で並び替え"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -8708,6 +8743,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "すべてのアイテムを除去"
@@ -8738,6 +8779,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "クラスアイテム追加"
@@ -12390,6 +12437,16 @@ msgstr "円柱シェイプの高さを変更"
msgid "Change Ray Shape Length"
msgstr "レイシェイプの長さを変更"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "カーブポイントの位置を設定"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "カーブポイントの位置を設定"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "円柱の半径を変更"
@@ -14160,6 +14217,42 @@ msgstr ""
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 "このボディは、メッシュを設定するまで無視されます。"
@@ -15444,10 +15537,6 @@ msgstr "定数は変更できません。"
#~ msgstr "わかった..."
#, fuzzy
-#~ msgid "Can't open '%s'."
-#~ msgstr "'..'を処理できません"
-
-#, fuzzy
#~ msgid "Ugh"
#~ msgstr "うぇ"
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index 144ef77158..7abc89b216 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -366,6 +366,7 @@ msgstr "ანიმ ლუპის შეცვლა"
msgid "Remove Anim Track"
msgstr "ანიმაციის თრექის წაშლა"
+#. TRANSLATORS: %s will be replaced by a phrase describing the target of track.
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Create NEW track for %s and insert key?"
@@ -391,6 +392,17 @@ msgstr "შექმნა"
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
+#, fuzzy
+msgid "animation"
+msgstr "ფუნქციები:"
+
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "AnimationPlayer can't animate itself, only other players."
@@ -398,6 +410,12 @@ msgstr ""
"ანიმაციის გამშვები ვერ ჩაატარებს ცდებს საკუთარ თავზე, მხოლოდ სხვა "
"მოთამაშეებზე."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "ობიექტზე დაკვირვება"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "ანიმ შექმნა & ჩაყენება"
@@ -988,7 +1006,7 @@ msgstr "ახალი %s შექმნა"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2331,6 +2349,17 @@ 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 ""
@@ -3120,10 +3149,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "უწყვეტი"
@@ -3741,6 +3766,15 @@ msgid "Download from:"
msgstr ""
#: editor/export_template_manager.cpp
+#, fuzzy
+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 ""
@@ -8578,6 +8612,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "საყვარლები:"
@@ -8606,6 +8646,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "საყვარლები:"
@@ -12141,6 +12187,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13772,6 +13826,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/km.po b/editor/translations/km.po
index e18a778132..187307bc17 100644
--- a/editor/translations/km.po
+++ b/editor/translations/km.po
@@ -337,6 +337,7 @@ msgstr ""
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 ""
@@ -361,10 +362,25 @@ msgstr ""
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 ""
@@ -919,7 +935,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2210,6 +2226,17 @@ 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 ""
@@ -2989,10 +3016,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3597,6 +3620,14 @@ 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 ""
@@ -8277,6 +8308,12 @@ msgid ""
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 ""
@@ -8301,6 +8338,12 @@ 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 ""
@@ -11708,6 +11751,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13302,6 +13353,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index eda096e4ce..1f24eb1b1d 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -27,7 +27,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-16 05:47+0000\n"
+"PO-Revision-Date: 2021-08-12 14:48+0000\n"
"Last-Translator: Myeongjin Lee <aranet100@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
@@ -36,7 +36,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.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -358,6 +358,7 @@ msgstr "애니메이션 루프 모드 바꾸기"
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 "%s을(를) 위해 새 트랙을 만들고 키를 삽입할까요?"
@@ -382,12 +383,30 @@ msgstr "만들기"
msgid "Anim Insert"
msgstr "애니메이션 삽입"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "'%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 "애니메이션"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"AnimationPlayer는 자신이 아닌 다른 플레이어에만 애니메이션을 부여할 수 있습니"
"다."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "'%s' 속성이 없습니다."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "애니메이션 만들기 & 삽입"
@@ -961,9 +980,9 @@ msgstr "새 %s 만들기"
msgid "No results for \"%s\"."
msgstr "\"%s\"에 대한 결과가 없습니다."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "%s의 사용 가능한 설명이 없습니다."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1263,11 +1282,11 @@ msgstr "%s (이미 존재함)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "애셋 \"%s\"의 내용 - 파일 %d개가 프로젝트와 충돌합니다:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "애셋 \"%s\"의 내용 - 프로젝트와 충돌하는 파일이 없습니다:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1279,9 +1298,8 @@ msgid "The following files failed extraction from asset \"%s\":"
msgstr "다음 파일을 패키지에서 추출하는데 실패함:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "외 %d 개의 파일."
+msgstr "(및 더 많은 파일 %s개)"
#: editor/editor_asset_installer.cpp
#, fuzzy
@@ -1531,13 +1549,12 @@ msgid "Can't add autoload:"
msgstr "오토로드를 추가할 수 없음:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "파일이 존재하지 않습니다."
+msgstr "%s는 잘못된 경로입니다. 파일이 존재하지 않습니다."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s는 잘못된 경로입니다. 리소스 경로(res://)에 있지 않습니다."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1814,9 +1831,8 @@ msgid "Class Properties:"
msgstr "속성:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "기능"
+msgstr "주요 기능:"
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1876,14 +1892,12 @@ msgid "Export"
msgstr "내보내기"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "현재 프로필:"
+msgstr "선택된 프로필 구성:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "텍스쳐 옵션"
+msgstr "별도의 옵션:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
@@ -2307,6 +2321,17 @@ 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 "가져온 리소스를 저장할 수 없습니다."
@@ -2448,9 +2473,9 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"이 리소스는 가져온 씬에 속한 리소스이므로 편집할 수 없습니다.\n"
-"이 워크플로를 이해하려면 씬 가져오기(Importing Scenes)와 관련된 문서를 읽어주"
-"세요."
+"`이 리소스는 가져온 씬에 속한 리소스이므로 편집할 수 없습니다.\n"
+"이 워크플로를 이해하려면 씬 가져오기(Importing Scenes)와 관련된 설명문서를 읽"
+"어주세요."
#: editor/editor_node.cpp
msgid ""
@@ -2477,8 +2502,8 @@ msgid ""
msgstr ""
"이 씬은 가져온 것이므로 변경 사항이 유지되지 않습니다.\n"
"이 씬을 인스턴스화하거나 상속하면 편집할 수 있습니다.\n"
-"이 워크플로를 이해하려면 씬 가져오기(Importing Scenes)와 관련된 문서를 읽어주"
-"세요."
+"이 워크플로를 이해하려면 씬 가져오기(Importing Scenes)와 관련된 설명문서를 읽"
+"어주세요."
#: editor/editor_node.cpp
msgid ""
@@ -2487,7 +2512,7 @@ msgid ""
"this workflow."
msgstr ""
"원격 객체는 변경사항이 적용되지 않습니다.\n"
-"이 워크플로를 이해하려면 디버깅(Debugging)과 관련된 문서를 읽어주세요."
+"이 워크플로를 이해하려면 디버깅(Debugging)과 관련된 설명문서를 읽어주세요."
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
@@ -2568,7 +2593,7 @@ msgstr "이 작업에는 선택한 노드가 필요합니다."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr "현재 씬을 저장하지 않았습니다. 무시하고 열까요?"
+msgstr "현재 씬이 저장되어 있지 않습니다. 무시하고 여시겠습니까?"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
@@ -2600,11 +2625,11 @@ msgstr "예"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr "편집기를 끌까요?"
+msgstr "편집기를 나가시겠습니까?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr "프로젝트 매니저를 열까요?"
+msgstr "프로젝트 매니저를 여시겠습니까?"
#: editor/editor_node.cpp
msgid "Save & Quit"
@@ -2612,11 +2637,11 @@ msgstr "저장 & 종료"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr "끄기 전에 해당 씬의 변경 사항을 저장할까요?"
+msgstr "종료하기 전에 해당 씬의 변경 사항을 저장하시겠습니까?"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before opening Project Manager?"
-msgstr "프로젝트 매니저를 열기 전에 해당 씬의 변경 사항을 저장할까요?"
+msgstr "프로젝트 매니터를 열기 전에 해당 씬의 변경 사항을 저장하시겠습니까?"
#: editor/editor_node.cpp
msgid ""
@@ -2949,7 +2974,7 @@ msgid ""
msgstr ""
"이 옵션이 활성화 된 경우 원 클릭 배포를 사용하면 실행중인 프로젝트를 디버깅 "
"할 수 있도록이 컴퓨터의 IP에 연결을 시도합니다.\n"
-"이 옵션은 원격 디버깅 (일반적으로 모바일 장치 사용)에 사용하기위한 것입니"
+"이 옵션은 원격 디버깅 (일반적으로 모바일 기기 사용)에 사용하기 위한 것입니"
"다.\n"
"GDScript 디버거를 로컬에서 사용하기 위해 활성화 할 필요는 없습니다."
@@ -3009,8 +3034,8 @@ msgid ""
msgstr ""
"이 설정이 활성화된 경우, 편집기에서 씬을 수정하면 실행중인 프로젝트에 반영됩"
"니다.\n"
-"원격장치에서 사용중인 경우 네트워크 파일 시스템 기능을 활성화하면 더욱 효율적"
-"입니다."
+"기기에서 원격으로 사용중인 경우 네트워크 파일 시스템 기능을 활성화하면 더욱 "
+"효율적입니다."
#: editor/editor_node.cpp
msgid "Synchronize Script Changes"
@@ -3081,9 +3106,8 @@ msgid "Help"
msgstr "도움말"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "문서 열기"
+msgstr "온라인 설명문서"
#: editor/editor_node.cpp
msgid "Questions & Answers"
@@ -3161,10 +3185,6 @@ msgid "Save & Restart"
msgstr "저장 & 다시 시작"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "편집기 창에 변화가 있을 때마다 회전합니다."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "상시 업데이트"
@@ -3210,9 +3230,8 @@ msgid "Install from file"
msgstr "파일에서 설치"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "소스 메시를 선택하세요:"
+msgstr "Android 소스 파일 선택"
#: editor/editor_node.cpp
msgid ""
@@ -3358,9 +3377,8 @@ msgid "Update"
msgstr "업데이트"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "버전:"
+msgstr "버전"
#: editor/editor_plugin_settings.cpp
#, fuzzy
@@ -3609,7 +3627,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "이 템플릿을 제거합니다."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3635,42 +3653,37 @@ msgid "Connecting to the mirror..."
msgstr "미러에 연결 중..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "호스트 이름을 찾을 수 없음:"
+msgstr "요청된 주소를 해결할 수 없습니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "호스트에 연결할 수 없음:"
+msgstr "미러에 연결할 수 없습니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "호스트의 응답 없음:"
+msgstr "미러로부터 응담이 없습니다."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed."
-msgstr "요청 실패함."
+msgstr "요청에 실패했습니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "요청 실패. 너무 많은 리다이렉트"
+msgstr "요청이 리디렉션 루프로 끝났습니다."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "요청 실패함."
+msgstr "요청 실패됨:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "다운로드를 완료하여 템플릿을 압축 해제 중..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
-msgstr "임시 파일을 저장할 수 없음:"
+msgstr "임시 파일을 삭제할 수 없음:"
#: editor/export_template_manager.cpp
msgid ""
@@ -3691,7 +3704,7 @@ msgstr "미러 목록의 JSON 구문 분석 중 오류. 이 문제를 신고해
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "최상의 사용 가능한 미러"
#: editor/export_template_manager.cpp
msgid ""
@@ -3807,17 +3820,26 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Uninstall"
-msgstr "삭제"
+msgstr "제거"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "카운터의 초기 값"
+msgstr "현재 버전을 위한 템플릿을 제거합니다."
#: editor/export_template_manager.cpp
#, fuzzy
msgid "Download from:"
-msgstr "다운로드 오류"
+msgstr "다음 위치에서 다운로드:"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "브라우저에서 실행"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "복사 오류"
#: editor/export_template_manager.cpp
msgid "Download and Install"
@@ -3839,9 +3861,8 @@ msgid "Install from File"
msgstr "파일에서 설치"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "ZIP 파일에서 템플릿 가져오기"
+msgstr "로컬 파일로부터 템플릿을 설치합니다."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3859,9 +3880,8 @@ msgid "Other Installed Versions:"
msgstr "설치된 버전:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall Template"
-msgstr "삭제"
+msgstr "템플릿 제거"
#: editor/export_template_manager.cpp
msgid "Select Template File"
@@ -4401,9 +4421,8 @@ msgid "Save As..."
msgstr "다른 이름으로 저장..."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Extra resource options."
-msgstr "리소스 경로에 없습니다."
+msgstr "별도의 리소스 옵션."
#: editor/inspector_dock.cpp
#, fuzzy
@@ -4432,13 +4451,12 @@ msgid "History of recently edited objects."
msgstr "최근에 편집한 객체 기록입니다."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "문서 열기"
+msgstr "이 객체를 위한 설명문서를 엽니다."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
-msgstr "문서 열기"
+msgstr "설명문서 열기"
#: editor/inspector_dock.cpp
msgid "Filter properties"
@@ -4690,9 +4708,8 @@ msgid "Blend:"
msgstr "혼합:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "매개변수 변경됨"
+msgstr "매개변수 변경됨:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5526,7 +5543,7 @@ msgstr "미리 보기"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr "스냅 설정"
+msgstr "스냅 구성"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Offset:"
@@ -5802,27 +5819,22 @@ 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
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+드래그: 이동"
+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
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"클릭한 위치에 있는 모든 객체 목록을 보여줘요\n"
-"(선택 모드에서 Alt+우클릭과 같음)."
+"Alt+우클릭: 클릭된 위치에 있는 잠금을 포함한 모든 노드의 목록을 보여줍니다."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
@@ -5831,12 +5843,12 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode"
-msgstr "이동모드"
+msgstr "이동 모드"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr "회전모드"
+msgstr "회전 모드"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5866,7 +5878,7 @@ msgstr "자 모드"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle smart snapping."
-msgstr "스마트 스냅 토글."
+msgstr "스마트 스냅을 토글합니다."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Smart Snap"
@@ -5874,7 +5886,7 @@ msgstr "스마트 스냅 사용"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle grid snapping."
-msgstr "격자 스냅 토글."
+msgstr "격자 스냅을 토글합니다."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Grid Snap"
@@ -5907,7 +5919,7 @@ msgstr "스마트 스냅"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Configure Snap..."
-msgstr "스냅 설정..."
+msgstr "스냅 구성..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Parent"
@@ -6410,9 +6422,8 @@ msgid "No mesh to debug."
msgstr "디버그할 메시가 없습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "이 레이어에서 모델은 UV가 없습니다"
+msgstr "레이어 %d에서 메시에 UV가 없습니다."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -7068,7 +7079,7 @@ msgstr "격자 보이기"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Configure Grid:"
-msgstr "격자 설정:"
+msgstr "격자 구성:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset X:"
@@ -7146,14 +7157,12 @@ msgid "Flip Portals"
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
@@ -7402,11 +7411,11 @@ msgstr "온라인 문서"
#: editor/plugins/script_editor_plugin.cpp
msgid "Open Godot online documentation."
-msgstr "Godot 온라인 문서를 엽니다."
+msgstr "Godot 온라인 설명문서를 엽니다."
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
-msgstr "참조 문서를 검색합니다."
+msgstr "참조 설명문서를 검색합니다."
#: editor/plugins/script_editor_plugin.cpp
msgid "Go to previous edited document."
@@ -7607,7 +7616,7 @@ msgstr "이전 북마크로 이동"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Bookmarks"
-msgstr "모든 북마크 제거"
+msgstr "모든 북마크 삭제"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function..."
@@ -7624,7 +7633,7 @@ msgstr "중단점 토글"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr "중단점 모두 제거"
+msgstr "모든 중단점 삭제"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Next Breakpoint"
@@ -7721,20 +7730,17 @@ msgid "None"
msgstr "없음"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "주(State)"
+msgstr "회전"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "이동:"
+msgstr "이동"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "크기:"
+msgstr "크기"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7757,48 +7763,40 @@ msgid "Animation Key Inserted."
msgstr "애니메이션 키를 삽입했습니다."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "피치"
+msgstr "피치:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "크기: "
+msgstr "크기:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "그려진 객체"
+msgstr "그려진 객체:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "머티리얼 바꾸기"
+msgstr "머티리얼 바꾸기:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "셰이더 바꾸기"
+msgstr "셰이더 바꾸기:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "표면 바꾸기"
+msgstr "표면 바꾸기:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "드로우 콜"
+msgstr "드로우 콜:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "점"
+msgstr "정점:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
@@ -8459,71 +8457,63 @@ msgstr "스타일 박스"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num}색"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "하위 리소스를 찾을 수 없습니다."
+msgstr "색을 찾을 수 없습니다."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "상수"
+msgstr "상수 {num}개"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "색상 상수."
+msgstr "상수를 찾을 수 없습니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "글꼴 {num}개"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "찾을 수 없음!"
+msgstr "글꼴을 찾을 수 없습니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "아이콘 {num}개"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "찾을 수 없음!"
+msgstr "아이콘을 찾을 수 없습니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "스타일박스 {num}개"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "하위 리소스를 찾을 수 없습니다."
+msgstr "스타일박스를 찾을 수 없습니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "현재 선택 {num}개"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "가져올 것이 선택되지 않았습니다."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "테마 가져오기"
+msgstr "테마 항목을 가져오는 중"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "항목 {n}/{n} 가져오는 중"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "편집기를 끌까요?"
+msgstr "편집기를 업데이트 중"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8531,18 +8521,16 @@ msgid "Finalizing"
msgstr "분석 중"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "필터: "
+msgstr "필터:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
-msgstr ""
+msgstr "데이터와 함께"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "노드를 선택하세요"
+msgstr "데이터 유형 별 선택:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8558,9 +8546,8 @@ msgid "Deselect all visible color items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "먼저 설정 항목을 선택하세요!"
+msgstr "보이는 모든 상수 항목을 선택합니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
@@ -8571,9 +8558,8 @@ msgid "Deselect all visible constant items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "먼저 설정 항목을 선택하세요!"
+msgstr "보이는 모든 글꼴 항목을 선택합니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
@@ -8584,19 +8570,16 @@ msgid "Deselect all visible font items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "먼저 설정 항목을 선택하세요!"
+msgstr "보이는 모든 아이콘 항목을 선택합니다."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "먼저 설정 항목을 선택하세요!"
+msgstr "보이는 모든 아이콘 항목과 그 항목의 데이터를 선택합니다."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "먼저 설정 항목을 선택하세요!"
+msgstr "보이는 모든 아이콘 항목을 선택 해제합니다."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
@@ -8617,19 +8600,16 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "모두 접기"
+msgstr "유형을 접습니다."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "모두 펼치기"
+msgstr "유형을 펼칩니다."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "템플릿 파일 선택"
+msgstr "모든 테마 항목을 선택합니다."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8662,6 +8642,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "모든 항목 삭제"
@@ -8692,6 +8678,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "클래스 항목 추가"
@@ -8771,9 +8763,8 @@ msgid "Add Type:"
msgstr "유형:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "항목 추가"
+msgstr "항목 추가:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8781,9 +8772,8 @@ msgid "Add StyleBox Item"
msgstr "모든 항목 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "항목 삭제"
+msgstr "항목 삭제:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
@@ -8824,9 +8814,8 @@ msgid "Editor Theme"
msgstr "테마 편집"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "리소스 삭제"
+msgstr "다른 테마 리소스 선택:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8869,9 +8858,8 @@ msgid "Add Item Type"
msgstr "항목 추가"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "노드 유형"
+msgstr "노드 유형:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8892,9 +8880,8 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "테마"
+msgstr "테마:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8959,9 +8946,8 @@ msgid "Checked Radio Item"
msgstr "체크된 라디오 항목"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "이름있는 구분자."
+msgstr "이름 있는 구분자"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9135,7 +9121,7 @@ msgstr "TileSet에 텍스처를 추가합니다."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove selected Texture from TileSet."
-msgstr "선택한 텍스처를 TileSet에서 제거합니다."
+msgstr "선택된 텍스처를 TileSet에서 삭제합니다."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
@@ -10399,9 +10385,8 @@ msgid "VisualShader"
msgstr "비주얼 셰이더"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "비주얼 속성 편집"
+msgstr "비주얼 속성 편집:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10844,14 +10829,12 @@ 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 "목록에서 기기 선택"
+msgstr "목록에서 프로젝트 %d개를 삭제하시겠습니까?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "목록에서 기기 선택"
+msgstr "목록에서 이 프로젝트를 삭제하시겠습니까?"
#: editor/project_manager.cpp
msgid ""
@@ -12312,6 +12295,16 @@ msgstr "캡슐 모양 높이 바꾸기"
msgid "Change Ray Shape Length"
msgstr "광선 모양 길이 바꾸기"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "곡선 점 위치 설정"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "곡선 점 위치 설정"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "원기둥 반지름 바꾸기"
@@ -13109,17 +13102,15 @@ msgstr "목록에서 기기 선택"
#: platform/android/export/export.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "%s에서 실행"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting APK..."
-msgstr "모두 내보내기"
+msgstr "APK로 내보내는 중..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Uninstalling..."
-msgstr "삭제"
+msgstr "제거 중..."
#: platform/android/export/export.cpp
#, fuzzy
@@ -13127,14 +13118,12 @@ msgid "Installing to device, please wait..."
msgstr "로드 중, 기다려 주세요..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not install to device: %s"
-msgstr "씬을 인스턴스 할 수 없습니다!"
+msgstr "기기에 설치할 수 없음: %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Running on device..."
-msgstr "맞춤 스크립트 실행 중..."
+msgstr "기기에서 실행 중..."
#: platform/android/export/export.cpp
#, fuzzy
@@ -13163,7 +13152,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
-msgstr "Debug keystore를 편집기 설정과 프리셋에 설정하지 않았습니다."
+msgstr "Debug keystore를 편집기 설정과 프리셋에 구성하지 않았습니다."
#: platform/android/export/export.cpp
msgid ""
@@ -13175,7 +13164,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Release keystore incorrectly configured in the export preset."
-msgstr "내보내기 프리셋에 배포 keystorke가 잘못 설정되어 있습니다."
+msgstr "내보내기 프리셋에 출시 keystorke가 잘못 구성되어 있습니다."
#: platform/android/export/export.cpp
msgid "A valid Android SDK path is required in Editor Settings."
@@ -13187,7 +13176,7 @@ msgstr "편집기 설정에서 잘못된 Android SDK 경로입니다."
#: platform/android/export/export.cpp
msgid "Missing 'platform-tools' directory!"
-msgstr "'platform-tools' 디렉터리가 없습니다!"
+msgstr "'platform-tools' 디렉토리가 없습니다!"
#: platform/android/export/export.cpp
msgid "Unable to find Android SDK platform-tools' adb command."
@@ -13195,11 +13184,11 @@ msgstr "Android SDK platform-tools의 adb 명령을 찾을 수 없습니다."
#: platform/android/export/export.cpp
msgid "Please check in the Android SDK directory specified in Editor Settings."
-msgstr "편집기 설정에서 지정된 Android SDK 디렉터리를 확인해주세요."
+msgstr "편집기 설정에서 지정된 Android SDK 디렉토리를 확인해주세요."
#: platform/android/export/export.cpp
msgid "Missing 'build-tools' directory!"
-msgstr "'build-tools' 디렉터리가 없습니다!"
+msgstr "'build-tools' 디렉토리가 없습니다!"
#: platform/android/export/export.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
@@ -13263,16 +13252,12 @@ msgid "Signing debug %s..."
msgstr ""
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Signing release %s..."
-msgstr ""
-"파일 스캔중.\n"
-"기다려주십시오..."
+msgstr "출시 %s에 서명 중..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not find keystore, unable to export."
-msgstr "내보내기 템플릿을 열 수 없음:"
+msgstr "keystore를 찾을 수 없어, 내보낼 수 없었습니다."
#: platform/android/export/export.cpp
msgid "'apksigner' returned with error #%d"
@@ -13288,9 +13273,8 @@ msgid "'apksigner' verification of %s failed."
msgstr ""
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting for Android"
-msgstr "모두 내보내기"
+msgstr "Android용으로 내보내는 중"
#: platform/android/export/export.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
@@ -13334,14 +13318,12 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr "프로젝트 경로에 project.godot 파일을 찾을 수 없습니다."
+msgstr "프로젝트 파일을 gradle 프로젝트로 내보낼 수 없었습니다\n"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not write expansion package file!"
-msgstr "파일에 쓸 수 없음:"
+msgstr "확장 패키지 파일을 쓸 수 없었습니다!"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -13353,7 +13335,7 @@ msgid ""
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
"Android 프로젝트의 빌드에 실패했습니다, 출력된 오류를 확인하세요.\n"
-"또는 docs.godotengine.org에서 Andoid 빌드 문서를 찾아보세요."
+"또는 docs.godotengine.org에서 Android 빌드 설명문서를 찾아보세요."
#: platform/android/export/export.cpp
msgid "Moving output"
@@ -13365,7 +13347,7 @@ msgid ""
"outputs."
msgstr ""
"내보내기 파일을 복사하고 이름을 바꿀 수 없습니다, 출력에 대한 gradle 프로젝"
-"트 디렉터리를 확인하세요."
+"트 디렉토리를 확인하세요."
#: platform/android/export/export.cpp
#, fuzzy
@@ -13373,16 +13355,16 @@ msgid "Package not found: %s"
msgstr "애니메이션을 찾을 수 없음: '%s'"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Creating APK..."
-msgstr "윤곽선 만드는 중..."
+msgstr "APK를 만드는 중..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "내보내기 템플릿을 열 수 없음:"
+msgstr ""
+"내보낼 템플릿 APK를 찾을 수 없음:\n"
+"%s"
#: platform/android/export/export.cpp
msgid ""
@@ -13393,14 +13375,12 @@ msgid ""
msgstr ""
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Adding files..."
-msgstr "%s 추가하는 중..."
+msgstr "파일을 추가하는 중..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files"
-msgstr "파일에 쓸 수 없음:"
+msgstr "프로젝트 파일을 내보낼 수 없었습니다"
#: platform/android/export/export.cpp
msgid "Aligning APK..."
@@ -13455,29 +13435,24 @@ msgid "Could not write file:"
msgstr "파일에 쓸 수 없음:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "파일에 쓸 수 없음:"
+msgstr "파일을 읽을 수 없음:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "맞춤 HTML shell을 읽을 수 없음:"
+msgstr "HTML shell을 읽을 수 없음:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "폴더를 만들 수 없습니다."
+msgstr "HTTP 서버 디렉토리를 만들 수 없음:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "씬 저장 중 오류."
+msgstr "HTTP 서버를 시작하는 중 오류:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "잘못된 식별자:"
+msgstr "잘못된 bundle 식별자:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
@@ -14052,6 +14027,42 @@ msgstr ""
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 "이 바디는 메시를 설정할 때까지 무시됩니다."
@@ -14158,7 +14169,7 @@ msgid ""
msgstr ""
"색상: #%s\n"
"좌클릭: 색상 설정\n"
-"우클릭: 프리셋 제거"
+"우클릭: 프리셋 삭제"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
@@ -15474,9 +15485,6 @@ msgstr "상수는 수정할 수 없습니다."
#~ msgid "I see..."
#~ msgstr "알겠습니다..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "'%s' 열수 없음."
-
#~ msgid "Ugh"
#~ msgstr "오우"
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index ab98c9b156..f8bc356023 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -349,6 +349,7 @@ msgstr "Keiskite animacijos ciklo režimą"
msgid "Remove Anim Track"
msgstr "Animacija: panaikinti įrašą"
+#. 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 ""
@@ -373,10 +374,26 @@ msgstr "Sukurti"
msgid "Anim Insert"
msgstr "Animacija: įterpti"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Animacija"
+
#: 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 ""
@@ -962,7 +979,7 @@ msgstr "Sukurti Naują"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2288,6 +2305,17 @@ 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 ""
@@ -3079,10 +3107,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3710,6 +3734,15 @@ msgid "Download from:"
msgstr "Atsisiuntimo Klaida"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Atidaryti"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8555,6 +8588,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Mėgstamiausi:"
@@ -8583,6 +8622,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "Mėgstamiausi:"
@@ -12121,6 +12166,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13758,6 +13811,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index 3c6ab5cb19..180cd1be1c 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -344,6 +344,7 @@ msgstr "Izmainīt Animācijas Atkārtošanās Režīmu"
msgid "Remove Anim Track"
msgstr "Noņemt Anim. Celiņu"
+#. 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 "Izveidot JAUNU celiņu priekš %s un ievietot atslēgievietni?"
@@ -368,10 +369,26 @@ msgstr "Izveidot"
msgid "Anim Insert"
msgstr "Anim ievietot"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Funkcijas:"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer nevar animēt pats sevi, tikai citus spēlētājus."
+#. 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 "Anim Izveidot un Ievietot"
@@ -950,7 +967,7 @@ msgstr "Izveidot Jaunu %s"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2270,6 +2287,17 @@ 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 ""
@@ -3051,10 +3079,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Nepārtraukti Atjaunot"
@@ -3665,6 +3689,15 @@ msgid "Download from:"
msgstr ""
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Atvērt Failu Pārlūkā"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8410,6 +8443,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Noņemt no Favorītiem"
@@ -8438,6 +8477,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "Pievienot Favorītiem"
@@ -11935,6 +11980,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13556,6 +13609,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index 021c55f38b..3a70aade1a 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -329,6 +329,7 @@ msgstr ""
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 ""
@@ -353,10 +354,25 @@ msgstr ""
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 ""
@@ -911,7 +927,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2202,6 +2218,17 @@ 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 ""
@@ -2981,10 +3008,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3589,6 +3612,14 @@ 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 ""
@@ -8266,6 +8297,12 @@ msgid ""
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 ""
@@ -8290,6 +8327,12 @@ 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 ""
@@ -11697,6 +11740,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13291,6 +13342,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/mk.po b/editor/translations/mk.po
index a437ddf1c7..bf449381bb 100644
--- a/editor/translations/mk.po
+++ b/editor/translations/mk.po
@@ -336,6 +336,7 @@ msgstr ""
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 ""
@@ -360,10 +361,25 @@ msgstr ""
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 ""
@@ -918,7 +934,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2210,6 +2226,17 @@ 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 ""
@@ -2989,10 +3016,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3598,6 +3621,14 @@ 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 ""
@@ -8281,6 +8312,12 @@ msgid ""
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 ""
@@ -8305,6 +8342,12 @@ 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 ""
@@ -11712,6 +11755,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13306,6 +13357,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index 8213c2251c..b0d3a5a8d7 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -339,6 +339,7 @@ msgstr ""
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 ""
@@ -363,10 +364,27 @@ msgstr ""
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
+#, fuzzy
+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
+#, fuzzy
+msgid "property '%s'"
+msgstr "ഗുണം നോക്കുക"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr ""
@@ -921,7 +939,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2215,6 +2233,17 @@ 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 ""
@@ -2994,10 +3023,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3602,6 +3627,14 @@ 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 ""
@@ -8287,6 +8320,12 @@ msgid ""
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 ""
@@ -8311,6 +8350,12 @@ 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 ""
@@ -11719,6 +11764,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13315,6 +13368,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index b459ca23f3..af59635c8a 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -336,6 +336,7 @@ msgstr ""
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 ""
@@ -360,10 +361,26 @@ msgstr ""
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
+#, fuzzy
+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 ""
@@ -918,7 +935,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2209,6 +2226,17 @@ 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 ""
@@ -2989,10 +3017,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3597,6 +3621,14 @@ 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 ""
@@ -8279,6 +8311,12 @@ msgid ""
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 ""
@@ -8303,6 +8341,12 @@ 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 ""
@@ -11713,6 +11757,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13308,6 +13360,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index 51a09d2e24..5fd2547bcb 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -344,6 +344,7 @@ msgstr "Tukar Mod Gelung Animasi"
msgid "Remove Anim Track"
msgstr "Keluarkan Trek Anim"
+#. 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 "Cipta trek BARU untuk %s dan masukkan kunci?"
@@ -368,10 +369,27 @@ msgstr "Cipta"
msgid "Anim Insert"
msgstr "Masukkan 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 ""
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "animation"
+msgstr "Set Peralihan ke:"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer tidak animasikan dirinya sendiri, hanya pemain lain."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Sifat"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim Cipta & Masukkan"
@@ -950,7 +968,7 @@ msgstr "Cipta %s Baru"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2302,6 +2320,17 @@ msgid "New Window"
msgstr "Tetingkap Baru"
#: 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 "Berputar apabila tingkap editor dilukis semula."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Sumber yang diimport tidak dapat disimpan."
@@ -3165,10 +3194,6 @@ msgid "Save & Restart"
msgstr "Simpan & Mula Semula"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Berputar apabila tingkap editor dilukis semula."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Kemas Kini Secara Berterusan"
@@ -3828,6 +3853,15 @@ msgid "Download from:"
msgstr "Muat turun"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Buka dalam Pengurus Fail"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8593,6 +8627,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Keluarkan Item"
@@ -8623,6 +8663,12 @@ msgid "Remove All StyleBox Items"
msgstr "Keluarkan Item"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Tambah ke Kegemaran"
@@ -12087,6 +12133,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13712,6 +13766,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index efbca6253d..02f32b055b 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -353,6 +353,7 @@ msgstr "Endre løkkemodus for animasjon"
msgid "Remove Anim Track"
msgstr "Fjern Anim-Spor"
+#. 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 "Lag NYTT spor for %s og sett inn nøkkel?"
@@ -377,10 +378,28 @@ msgstr "Lag"
msgid "Anim Insert"
msgstr "Anim Sett inn"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Kan ikke åpne '%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 "Animasjon"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimasjonAvspiller kan ikke animere seg selv, kun andre avspillere."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Egenskapen «%s» eksisterer ikke."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim Lag og Sett Inn"
@@ -971,7 +990,7 @@ msgstr "Lag ny %s"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2384,6 +2403,17 @@ msgid "New Window"
msgstr "Nytt vindu"
#: 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 "Snurrer når redigeringsvinduet tegner opp på nytt."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Importerte ressurser kan ikke lagres."
@@ -3260,10 +3290,6 @@ msgid "Save & Restart"
msgstr "Lagre & Avslutt"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Snurrer når redigeringsvinduet tegner opp på nytt."
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "Kontinuerlig"
@@ -3931,6 +3957,16 @@ msgid "Download from:"
msgstr "Nedlastningsfeil"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Vis I Filutforsker"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Kopier feil"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8990,6 +9026,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Fjern Funksjon"
@@ -9020,6 +9062,12 @@ msgid "Remove All StyleBox Items"
msgstr "Fjern Funksjon"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Legg til Element"
@@ -12688,6 +12736,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Fjern Funksjon"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Fjern Funksjon"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -14382,6 +14440,42 @@ msgstr ""
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 ""
@@ -15259,9 +15353,6 @@ msgstr "Konstanter kan ikke endres."
#~ msgid "I see..."
#~ msgstr "Jeg forstår..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Kan ikke åpne '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Æsj"
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 2f16b90840..00f87ef79c 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -48,12 +48,13 @@
# Arthur de Roos <arthur.de.roos@gmail.com>, 2021.
# Vancha March <tjipkevdh@gmail.com>, 2021.
# Hugo van de Kuilen <hugo.vandekuilen1234567890@gmail.com>, 2021.
+# tobeqz <vanveenjorik+tobeqz@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-02 02:00+0000\n"
-"Last-Translator: Hugo van de Kuilen <hugo.vandekuilen1234567890@gmail.com>\n"
+"PO-Revision-Date: 2021-08-06 19:42+0000\n"
+"Last-Translator: tobeqz <vanveenjorik+tobeqz@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
"Language: nl\n"
@@ -384,6 +385,7 @@ msgstr "Animatielusmodus veranderen"
msgid "Remove Anim Track"
msgstr "Verwijder Anim Track"
+#. 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 "NIEUW spoor aanmaken voor %s en sleutel invoegen?"
@@ -408,10 +410,28 @@ msgstr "Maken"
msgid "Anim Insert"
msgstr "Anim Invoegen"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Kan '%s' niet openen."
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "animation"
+msgstr "Animatie"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "Animatie-Speler kan zichzelf niet animeren, alleen andere spelers."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Eigenschap '%s' bestaat niet."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim Maken & Invoegen"
@@ -622,9 +642,8 @@ msgid "Go to Previous Step"
msgstr "Ga naar Vorige Stap"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Resetten"
+msgstr "Reset"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -643,9 +662,8 @@ msgid "Use Bezier Curves"
msgstr "Gebruik Bezier Curves"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Plak sporen"
+msgstr "Creëer RESET Track(s)"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -992,9 +1010,9 @@ msgstr "%s opstellen"
msgid "No results for \"%s\"."
msgstr "Geen resultaten voor \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Geen beschrijving beschikbaar voor %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1094,7 +1112,6 @@ msgid "Owners Of:"
msgstr "Eigenaren van:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Remove the selected files from the project? (Cannot be undone.)\n"
"Depending on your filesystem configuration, the files will either be moved "
@@ -1102,11 +1119,10 @@ msgid ""
msgstr ""
"Geselecteerde bestanden uit het project verwijderen? (Kan niet ongedaan "
"gemaakt worden)\n"
-"De bestanden kunnen mogelijk vanuit de prullenbak van het systeem hersteld "
-"worden."
+"Bestanden kunnen naar de prullenbak gestuurd worden of permanent verwijderd "
+"worden, afhankelijk van uw bestandssysteem."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1117,8 +1133,8 @@ msgstr ""
"De bestanden die verwijderd worden zijn nodig om andere bronnen te laten "
"werken.\n"
"Toch verwijderen? (Onomkeerbaar)\n"
-"De bestanden kunnen mogelijk vanuit de prullenbak van het systeem hersteld "
-"worden."
+"De bestanden kunnen naar de prullenbak gestuurd worden of permanent "
+"verwijderd worden, afhankelijk van uw bestandssysteem."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1288,7 +1304,6 @@ msgid "Licenses"
msgstr "Licenties"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
msgstr "Fout bij het openen van het pakketbestand, geen zip-formaat."
@@ -1300,29 +1315,28 @@ msgstr "%s (bestaat al)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
msgstr ""
+"Inhoud van asset \"%s\" - %d bestand(en) zijn in conflict met uw project:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"Inhoud van asset \"%s\" - Geen bestanden hebben een conflict met uw project:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Bronnen aan het uitpakken"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "De volgende bestanden konden niet worden uitgepakt:"
+msgstr "De volgende bestanden konden niet worden uitgepakt uit \"%s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "En nog %s bestand(en)."
+msgstr "(en nog %s bestanden)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Pakket succesvol geïnstalleerd!"
+msgstr "Asset \"%s\" succesvol geïnstalleerd!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1334,9 +1348,8 @@ msgid "Install"
msgstr "Installeer"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Pakketinstalleerder"
+msgstr "Assetinstalleerder"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1399,7 +1412,6 @@ msgid "Bypass"
msgstr "Omleiden"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "Audiobusopties"
@@ -1567,13 +1579,12 @@ msgid "Can't add autoload:"
msgstr "Autoload kan niet toevoegd worden:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Bestand bestaat niet."
+msgstr "%s is een ongeldig pad. Bestand bestaat niet."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s is een ongeldig pad. Niet in bron pad (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1773,7 +1784,7 @@ msgstr "Importtabblad"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Laat u 3D scenes weergeven en bewerken."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
@@ -2345,6 +2356,17 @@ msgid "New Window"
msgstr "Nieuw Venster"
#: 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 "Draait wanneer het editor venster wordt hertekend."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Geïmporteerde bronnen kunnen niet opgeslagen worden."
@@ -3205,10 +3227,6 @@ msgid "Save & Restart"
msgstr "Opslaan & Herstarten"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Draait wanneer het editor venster wordt hertekend."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Continu Bijwerken"
@@ -3874,6 +3892,16 @@ msgid "Download from:"
msgstr "Downloadfout"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Uitvoeren in Browser"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Kopieer Fout"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8745,6 +8773,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Verwijder Alle Items"
@@ -8775,6 +8809,12 @@ msgid "Remove All StyleBox Items"
msgstr "Verwijder Alle Items"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Class Items Toevoegen"
@@ -12447,6 +12487,16 @@ msgstr "Wijzig Cylinder Vorm Hoogte"
msgid "Change Ray Shape Length"
msgstr "Wijzig Ray Vorm Lengte"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Zet Curve Punt Positie"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Zet Curve Punt Positie"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Wijzig Cylinder Straal"
@@ -14216,6 +14266,42 @@ msgstr ""
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 "Dit lichaam zal worden genegeerd totdat je een mesh instelt."
@@ -15415,9 +15501,6 @@ msgstr "Constanten kunnen niet worden aangepast."
#~ msgid "I see..."
#~ msgstr "Ik snap het..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Kan '%s' niet openen."
-
#~ msgid "Ugh"
#~ msgstr "Oeps"
diff --git a/editor/translations/or.po b/editor/translations/or.po
index 89cbdfbf2b..8bee62f8d5 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -335,6 +335,7 @@ msgstr ""
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 ""
@@ -359,10 +360,25 @@ msgstr ""
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 ""
@@ -917,7 +933,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2208,6 +2224,17 @@ 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 ""
@@ -2987,10 +3014,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3595,6 +3618,14 @@ 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 ""
@@ -8272,6 +8303,12 @@ msgid ""
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 ""
@@ -8296,6 +8333,12 @@ 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 ""
@@ -11703,6 +11746,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13297,6 +13348,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index edaf8ab701..24ad379ad0 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -384,6 +384,7 @@ msgstr "Zmień sposób zapętlania animacji"
msgid "Remove Anim Track"
msgstr "Usuń ścieżkę animacji"
+#. 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 "Utworzyć NOWĄ ścieżkę dla %s i wstawić klucz?"
@@ -408,11 +409,29 @@ msgstr "Utwórz"
msgid "Anim Insert"
msgstr "Wstaw animację"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Nie można otworzyć '%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 "Animacja"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"AnimationPlayer nie może animować sam siebie, tylko inne węzły tego typu."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Właściwość \"%s\" nie istnieje."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Utwórz i wstaw"
@@ -987,7 +1006,7 @@ msgstr "Utwórz nowy %s"
msgid "No results for \"%s\"."
msgstr "Brak wyników dla \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2333,6 +2352,17 @@ msgid "New Window"
msgstr "Nowe okno"
#: 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 "Obraca się, gdy okno edytora jest przerysowywane."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Zaimportowane zasoby nie mogą być zapisane."
@@ -3192,10 +3222,6 @@ msgid "Save & Restart"
msgstr "Zapisz i zrestartuj"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Obraca się, gdy okno edytora jest przerysowywane."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Aktualizuj ciągle"
@@ -3856,6 +3882,16 @@ msgid "Download from:"
msgstr "Błąd pobierania"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Uruchom w przeglądarce"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Kopiuj błąd"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8727,6 +8763,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Usuń wszystkie elementy"
@@ -8757,6 +8799,12 @@ msgid "Remove All StyleBox Items"
msgstr "Usuń wszystkie elementy"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Dodaj klasę elementów"
@@ -12419,6 +12467,16 @@ msgstr "Zmień wysokość kształtu cylindra"
msgid "Change Ray Shape Length"
msgstr "Zmień długość Ray Shape"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Ustaw pozycje punktu krzywej"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Ustaw pozycje punktu krzywej"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Zmień promień cylindra"
@@ -14200,6 +14258,42 @@ msgstr ""
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 "To ciało będzie ignorowane, dopóki nie ustawisz siatki."
@@ -15477,9 +15571,6 @@ msgstr "Stałe nie mogą być modyfikowane."
#~ msgid "I see..."
#~ msgstr "Widzę..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Nie można otworzyć '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Błąd"
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 1bcfe47610..96fab899cd 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -360,6 +360,7 @@ msgstr ""
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 ""
@@ -384,10 +385,26 @@ msgstr ""
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
+#, fuzzy
+msgid "animation"
+msgstr "Yer functions:"
+
#: 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 ""
@@ -962,7 +979,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2291,6 +2308,17 @@ 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 ""
@@ -3086,10 +3114,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3720,6 +3744,15 @@ msgid "Download from:"
msgstr "Discharge ye' Variable"
#: editor/export_template_manager.cpp
+msgid "Open in Web Browser"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Slit th' Node"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8562,6 +8595,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Discharge ye' Variable"
@@ -8592,6 +8631,12 @@ msgid "Remove All StyleBox Items"
msgstr "Discharge ye' Variable"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Add Node"
@@ -12150,6 +12195,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Discharge ye' Signal"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Discharge ye' Signal"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13820,6 +13875,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/pt.po b/editor/translations/pt.po
index e51c7a3b77..1c8e2476a3 100644
--- a/editor/translations/pt.po
+++ b/editor/translations/pt.po
@@ -23,8 +23,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-03 10:33+0000\n"
-"Last-Translator: André Silva <andre.olivais@gmail.com>\n"
+"PO-Revision-Date: 2021-08-06 06:48+0000\n"
+"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/"
"godot/pt/>\n"
"Language: pt\n"
@@ -354,6 +354,7 @@ msgstr "Mudar Modo do Loop da Animação"
msgid "Remove Anim Track"
msgstr "Remover Pista de Animação"
+#. 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 "Criar NOVA pista para %s e inserir chave?"
@@ -378,12 +379,30 @@ msgstr "Criar"
msgid "Anim Insert"
msgstr "Anim Inserir"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Impossível abrir '%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 "Animação"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"AnimationPlayer não se pode animar a ele próprio, apenas a outros "
"executantes."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Não existe a Propriedade '%s'."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim Criar & Inserir"
@@ -591,9 +610,8 @@ msgid "Go to Previous Step"
msgstr "Ir para Passo Anterior"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Repor"
+msgstr "Aplicar Reinicialização"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -612,9 +630,8 @@ msgid "Use Bezier Curves"
msgstr "Usar Curvas Bezier"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Colar Pistas"
+msgstr "Criar Pista(s) RESET"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -939,7 +956,6 @@ msgid "Edit..."
msgstr "Editar..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Ir para Método"
@@ -959,9 +975,9 @@ msgstr "Criar Novo %s"
msgid "No results for \"%s\"."
msgstr "Nenhum resultado para \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Nenhuma descrição disponível para %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1061,17 +1077,16 @@ msgid "Owners Of:"
msgstr "Proprietários de:"
#: editor/dependency_editor.cpp
-#, fuzzy
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 ""
-"Remover ficheiros selecionados do Projeto? (sem desfazer)\n"
-"Pode encontrar os ficheiros removidos na Reciclagem do sistema."
+"Remover ficheiros selecionados do Projeto? (Sem desfazer.)\n"
+"Dependendo da configuração, pode encontrar os ficheiros removidos na "
+"Reciclagem do sistema ou apagados permanentemente."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1081,8 +1096,9 @@ msgid ""
msgstr ""
"Os ficheiros a serem removidos são necessários para que outros recursos "
"funcionem.\n"
-"Remover mesmo assim? (sem desfazer)\n"
-"Pode encontrar os ficheiros removidos na Reciclagem do sistema."
+"Remover mesmo assim? (Sem desfazer.)\n"
+"Dependendo da configuração, pode encontrar os ficheiros removidos na "
+"Reciclagem do sistema ou apagados permanentemente."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1252,14 +1268,13 @@ msgid "Licenses"
msgstr "Licenças"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Erro ao abrir ficheiro comprimido (não está no formato ZIP)."
+msgstr ""
+"Erro ao abrir ficheiro de recurso para \"%s\" (não está no formato ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (Já Existe)"
+msgstr "%s (já existe)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
@@ -1274,19 +1289,16 @@ msgid "Uncompressing Assets"
msgstr "A Descomprimir Ativos"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Falhou a extração dos seguintes Ficheiros do pacote:"
+msgstr "Falhou a extração dos seguintes ficheiros do recurso \"%s\":"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "E mais %s ficheiros."
+msgstr "(e mais %s ficheiros)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Pacote Instalado com sucesso!"
+msgstr "Recurso \"%s\" instalado com sucesso!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1298,9 +1310,8 @@ msgid "Install"
msgstr "Instalar"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Instalador de Pacotes"
+msgstr "Instalador de Recursos"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -2310,6 +2321,17 @@ msgid "New Window"
msgstr "Nova Janela"
#: 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 "Roda quando a janela do editor atualiza."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Recursos importados não podem ser guardados."
@@ -3171,10 +3193,6 @@ msgid "Save & Restart"
msgstr "Guardar & Reiniciar"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Roda quando a janela do editor atualiza."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Atualização Contínua"
@@ -3839,6 +3857,16 @@ msgid "Download from:"
msgstr "Erro na transferência"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Executar no Navegador"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Copiar Erro"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8698,6 +8726,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Remover Todos os Itens"
@@ -8728,6 +8762,12 @@ msgid "Remove All StyleBox Items"
msgstr "Remover Todos os Itens"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Adicionar Itens de Classe"
@@ -12385,6 +12425,16 @@ msgstr "Mudar Altura da Forma Cilindro"
msgid "Change Ray Shape Length"
msgstr "Mudar comprimento da forma raio"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Definir posição do Ponto da curva"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Definir posição do Ponto da curva"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Mudar Raio do Cilindro"
@@ -14158,6 +14208,42 @@ msgstr ""
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 "Este corpo será ignorado até se definir uma malha."
@@ -15596,9 +15682,6 @@ msgstr "Constantes não podem ser modificadas."
#~ msgid "I see..."
#~ msgstr "Eu vejo..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Impossível abrir '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Ugh"
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index c11e4f347b..b7bb7ce0c4 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -95,14 +95,14 @@
# Felipe Jesus Macedo <fmacedo746@gmail.com>, 2020.
# José Paulo <jose.paulo1919@gmail.com>, 2020.
# Necco <necco@outlook.com>, 2020.
-# Marcelo Silveira Hayden <mshayden.1998@gmail.com>, 2020.
+# Marcelo Silveira Hayden <mshayden.1998@gmail.com>, 2020, 2021.
# GUILHERME SOUZA REIS DE MELO LOPES <guilhermesrml@unipam.edu.br>, 2020.
# Gabriela Araújo <Gabirin@outlook.com.br>, 2020.
# Jairo Tuboi <tuboi.jairo@gmail.com>, 2020.
# Felipe Fetter <felipetfetter@gmail.com>, 2020.
# Rafael Henrique Capati <rhcapati@gmail.com>, 2020.
# NogardRyuu <nogardryuu@gmail.com>, 2020, 2021.
-# Elton <eltondeoliveira@outlook.com>, 2020.
+# Elton <eltondeoliveira@outlook.com>, 2020, 2021.
# ThiagoCTN <thiagocampostn@gmail.com>, 2020.
# Alec Santos <alecsantos96@gmail.com>, 2020.
# Augusto Milão <augusto.milao01@gmail.com>, 2021.
@@ -118,12 +118,14 @@
# Gustavo HM 102 <gustavohm102@gmail.com>, 2021.
# Douglas Leão <djlsplays@gmail.com>, 2021.
# PauloFRs <paulofr1@hotmail.com>, 2021.
+# Diego Bloise <diego-dev@outlook.com>, 2021.
+# Alkoarism <Alkoarism@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2021-06-29 08:04+0000\n"
-"Last-Translator: PauloFRs <paulofr1@hotmail.com>\n"
+"PO-Revision-Date: 2021-08-06 06:47+0000\n"
+"Last-Translator: Alkoarism <Alkoarism@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -131,7 +133,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.7.1-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -452,6 +454,7 @@ msgstr "Alterar Modo Repetição da Animação"
msgid "Remove Anim Track"
msgstr "Remover Trilha da Anim"
+#. 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 "Criar NOVA faixa para %s e inserir chave?"
@@ -476,10 +479,28 @@ msgstr "Criar"
msgid "Anim Insert"
msgstr "Inserir Anim"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Não é possível abrir '%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 "Animação"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer não pode animar a si mesmo, apenas outros jogadores."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Nenhuma propriedade '%s' existe."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Criar e Inserir Anim"
@@ -689,9 +710,8 @@ msgid "Go to Previous Step"
msgstr "Ir ao Passo Anterior"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Recompor"
+msgstr "Redefinir"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -710,9 +730,8 @@ msgid "Use Bezier Curves"
msgstr "Usar Curvas de Bezier"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Colar Trilhas"
+msgstr "Criar RESET Track(s)"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -785,7 +804,7 @@ msgstr "Mudar Deslocamento do Início do Clip de Trilha de Audio"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr "Alterar Deslocamento de Fim do Clipe de Faixa de Áudio"
+msgstr "Alterar fim da Trilha de Aúdio"
#: editor/array_property_edit.cpp
msgid "Resize Array"
@@ -1056,9 +1075,9 @@ msgstr "Criar Novo %s"
msgid "No results for \"%s\"."
msgstr "Sem resultados para \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Sem descrição disponível para %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1158,18 +1177,16 @@ msgid "Owners Of:"
msgstr "Donos De:"
#: editor/dependency_editor.cpp
-#, fuzzy
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 ""
-"Remover arquivos selecionados do projeto? (irreversível)\n"
-"Você pode encontrar os arquivos removidos na lixeira do sistema para "
-"restaurá-los."
+"Remover arquivos selecionados do projeto? (Irreversível.)\n"
+"Dependendo da configuração do seu sistema, os arquivos serão movidos para a "
+"lixeira do sistema ou apagados permanentemente."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1177,11 +1194,11 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"Os arquivos sendo removidos são requeridos por outros recursos para que "
-"funcionem.\n"
-"Removê-los mesmo assim? (irreversível)\n"
-"Você pode encontrar os arquivos removidos na lixeira do sistema para "
-"restaurá-los."
+"Os arquivos que estão sendo removidos são necessários por outros recursos "
+"para que funcionem.\n"
+"Removê-los mesmo assim? (Irreversível.)\n"
+"Dependendo da configuração do seu sistema, os arquivos serão movidos para a "
+"lixeira do sistema ou apagados permanentemente."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1351,9 +1368,8 @@ msgid "Licenses"
msgstr "Licenças"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Erro ao abrir arquivo compactado (não está em formato ZIP)."
+msgstr "Erro ao abrir o pacote \"%s\" (não está em formato ZIP)."
#: editor/editor_asset_installer.cpp
#, fuzzy
@@ -1362,30 +1378,30 @@ msgstr "%s (Já existe)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "Conteúdo do asset \"%s\" - %d arquivo(s) conflita(m) com seu projeto:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
msgstr ""
+"Conteúdo do asset \"%s\" - Nenhum arquivo entra em conflito com o seu "
+"projeto:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Descompactando Assets"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Os arquivos a seguir falharam ao serem extraídos do pacote:"
+msgstr "Os seguintes arquivos falharam na extração do asset \"% s\":"
#: editor/editor_asset_installer.cpp
#, fuzzy
msgid "(and %s more files)"
-msgstr "%s mais arquivo(s)."
+msgstr "(e %s mais arquivos)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Pacote instalado com sucesso!"
+msgstr "Asset \"%s\" instalados com sucesso!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1397,9 +1413,8 @@ msgid "Install"
msgstr "Instalar"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Instalador de Pacotes"
+msgstr "Instalador de Assets"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1632,11 +1647,11 @@ msgstr "Não pode adicionar autoload:"
#: editor/editor_autoload_settings.cpp
#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "O arquivo não existe."
+msgstr "O %s é um caminho inválido. O arquivo não existe."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s é um caminho inválido. Não está no caminho dos recursos (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1662,7 +1677,7 @@ msgstr "Nome"
#: editor/editor_autoload_settings.cpp
#, fuzzy
msgid "Global Variable"
-msgstr "Variável"
+msgstr "Variável Global"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1763,8 +1778,8 @@ msgid ""
"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
"'Import Pvrtc' in Project Settings."
msgstr ""
-"A plataforma alvo requer compressão de texturas 'PVRTC' para GLES2. Habilite "
-"'Importar Pvrtc' nas Configurações de Projeto."
+"A plataforma de destino requer compressão de texturas 'PVRTC' para GLES2. "
+"Habilite 'Importar Pvrtc' nas Configurações de Projeto."
#: editor/editor_export.cpp
msgid ""
@@ -1836,36 +1851,43 @@ msgid "Import Dock"
msgstr "Importar Dock"
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Permite visualizar e editar cenas 3D."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Permite editar scripts usando o editor de script integrado."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "Fornece acesso integrado à Biblioteca de Assets."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Permite editar a hierarquia de nó na doca Cena."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
-msgstr ""
+msgstr "Permite trabalhar com sinais e grupos do nó selecionado na doca Cena."
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Allows to browse the local file system via a dedicated dock."
msgstr ""
+"Permite navegar pelo sistema de arquivos local através de uma doca dedicada."
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
msgstr ""
+"Permite definir as configurações de importação para assets individualmente. "
+"Requer a doca FileSystem para funcionar."
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1874,11 +1896,11 @@ msgstr "(Atual)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(Nenhum(a))"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "Remover o perfil selecionado, '%s'? Não pode ser desfeita."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1911,17 +1933,16 @@ msgstr "Habilitar Editor Contextual"
#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Class Properties:"
-msgstr "Propriedades:"
+msgstr "Propriedades de Classe:"
#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Main Features:"
-msgstr "Funcionalidades"
+msgstr "Características principais:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Classes Ativadas:"
+msgstr "Nós e Classes:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1939,9 +1960,8 @@ msgid "Error saving profile to path: '%s'."
msgstr "Erro ao salvar perfil no caminho: '%s'."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "Redefinir para os padrões"
+msgstr "Redefinir padrões"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
@@ -1950,12 +1970,12 @@ msgstr "Perfil Atual:"
#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Create Profile"
-msgstr "Apagar Perfil"
+msgstr "Criar Perfil"
#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Remove Profile"
-msgstr "Remover Telha"
+msgstr "Remover Perfil"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1977,16 +1997,19 @@ msgstr "Exportação"
#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Perfil Atual:"
+msgstr "Configurar Perfil Selecionado:"
#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Extra Options:"
-msgstr "Opções da Textura"
+msgstr "Opções Extra:"
#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Create or import a profile to edit available classes and properties."
msgstr ""
+"Criar ou importar um perfil para editar as classes e propriedades "
+"disponíveis."
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -2015,7 +2038,7 @@ msgstr "Selecionar a Pasta Atual"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
#, fuzzy
msgid "File exists, overwrite?"
-msgstr "O arquivo existe. Sobrescrever?"
+msgstr "O arquivo já existe. Sobrescrever?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2408,6 +2431,17 @@ msgid "New Window"
msgstr "Nova Janela"
#: 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 "Gira quando a janela do editor atualiza."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Recursos Importados não podem ser salvos."
@@ -2638,13 +2672,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"A cena atual não tem um nó raiz, mas %d recurso(s) externo(s) modificado(s) "
+"foram salvos de qualquer forma."
#: 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 "Um nó raiz é requerido para salvar a cena."
+msgstr ""
+"Um nó-raiz é necessário para salvar a cena. Você pode adicionar um nó-raiz "
+"usando a doca da árvore de cenas."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2752,9 +2789,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: '%s'."
-msgstr ""
-"Não foi possível localizar a área do script para o complemento do plugin em: "
-"'%s'."
+msgstr "Não foi possível encontrar o campo de script para o plugin em: '%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
@@ -3035,7 +3070,7 @@ msgstr "Explorador de Recursos Órfãos..."
#: editor/editor_node.cpp
#, fuzzy
msgid "Reload Current Project"
-msgstr "Renomear Projeto"
+msgstr "Recarregar o projeto atual"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3197,11 +3232,12 @@ msgstr "Ajuda"
#: editor/editor_node.cpp
#, fuzzy
msgid "Online Documentation"
-msgstr "Abrir Documentação"
+msgstr "Documentação Online"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Questions & Answers"
-msgstr ""
+msgstr "Perguntas & Respostas"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3210,7 +3246,7 @@ msgstr "Reportar bug"
#: editor/editor_node.cpp
#, fuzzy
msgid "Suggest a Feature"
-msgstr "Defina um Valor"
+msgstr "Sugira um recurso"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3223,7 +3259,7 @@ msgstr "Comunidade"
#: editor/editor_node.cpp
#, fuzzy
msgid "About Godot"
-msgstr "Sobre"
+msgstr "Sobre Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3275,10 +3311,6 @@ msgid "Save & Restart"
msgstr "Salvar e Reiniciar"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Gira quando a janela do editor atualiza."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Atualizar Continuamente"
@@ -3323,12 +3355,12 @@ msgstr "Gerenciar Templates"
#: editor/editor_node.cpp
#, fuzzy
msgid "Install from file"
-msgstr "Instalar a Partir do Arquivo"
+msgstr "Instalar do arquivo"
#: editor/editor_node.cpp
#, fuzzy
msgid "Select android sources file"
-msgstr "Selecione uma Malha de origem:"
+msgstr "Selecione o arquivo de fontes do Android"
#: editor/editor_node.cpp
msgid ""
@@ -3412,7 +3444,7 @@ msgstr "Selecionar"
#: editor/editor_node.cpp
#, fuzzy
msgid "Select Current"
-msgstr "Selecionar a Pasta Atual"
+msgstr "Selecione Atual"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3449,7 +3481,7 @@ msgstr "Nenhum sub-recurso encontrado."
#: editor/editor_path.cpp
#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Nenhum sub-recurso encontrado."
+msgstr "Abra uma lista de sub-recursos."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3478,12 +3510,12 @@ msgstr "Atualizar"
#: editor/editor_plugin_settings.cpp
#, fuzzy
msgid "Version"
-msgstr "Versão:"
+msgstr "Versão"
#: editor/editor_plugin_settings.cpp
#, fuzzy
msgid "Author"
-msgstr "Autores"
+msgstr "Autor"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3496,14 +3528,12 @@ msgid "Measure:"
msgstr "Medida:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (ms)"
-msgstr "Tempo do Frame (seg)"
+msgstr "Tempo do Frame (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Tempo Médio (seg)"
+msgstr "Tempo Médio (ms)"
#: editor/editor_profiler.cpp
msgid "Frame %"
@@ -3945,6 +3975,16 @@ msgid "Download from:"
msgstr "Erro ao baixar"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Rodar no Navegador"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Copiar Erro"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -4294,15 +4334,15 @@ msgstr "Procurando..."
#: editor/find_in_files.cpp
msgid "%d match in %d file."
-msgstr "%d correspondência em %d arquivo."
+msgstr "%d correspondências no arquivo %d."
#: editor/find_in_files.cpp
msgid "%d matches in %d file."
-msgstr "%d correspondências em %d arquivo."
+msgstr "%d correspondências no arquivo %d."
#: editor/find_in_files.cpp
msgid "%d matches in %d files."
-msgstr "%d correspondências em %d arquivos."
+msgstr "%d correspondências no arquivo %d."
#: editor/groups_editor.cpp
msgid "Add to Group"
@@ -4444,11 +4484,11 @@ msgstr "Selecione o arquivo para importar"
#: editor/import_defaults_editor.cpp
msgid "Importer:"
-msgstr "Importar:"
+msgstr "Importador:"
#: editor/import_defaults_editor.cpp
msgid "Reset to Defaults"
-msgstr "Redefinir para os padrões"
+msgstr "Redefinir padrões"
#: editor/import_dock.cpp
msgid "Keep File (No Import)"
@@ -4766,7 +4806,7 @@ msgstr "Abrir Editor"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Open Animation Node"
-msgstr "Abrir Animação de Nós"
+msgstr "Abrir Nó de Animação"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Triangle already exists."
@@ -4833,7 +4873,7 @@ msgstr "Editar Filtros"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Output node can't be added to the blend tree."
-msgstr "Nós de saída não pode ser adicionado à árvore de mistura."
+msgstr "Nó de Saída não pode ser adicionado à árvore de mistura."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Add Node to BlendTree"
@@ -8818,6 +8858,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Remover Todos os Itens"
@@ -8848,6 +8894,12 @@ msgid "Remove All StyleBox Items"
msgstr "Remover Todos os Itens"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Adicionar Itens de Classe"
@@ -12508,6 +12560,16 @@ msgstr "Alterar a Altura da Forma do Cilindro"
msgid "Change Ray Shape Length"
msgstr "Alterar o Comprimento da Forma do Raio"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Definir Posição do Ponto da Curva"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Definir Posição do Ponto da Curva"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Alterar Raio do Cilindro"
@@ -14289,6 +14351,42 @@ msgstr ""
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 "Este corpo será ignorado até você definir uma malha."
@@ -15546,9 +15644,6 @@ msgstr "Constantes não podem serem modificadas."
#~ msgid "I see..."
#~ msgstr "Entendo..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Não é possível abrir '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Ugh"
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index f1d65384fc..2b1626bfe2 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -351,6 +351,7 @@ msgstr "Schimbați Bucla Animației"
msgid "Remove Anim Track"
msgstr "Elimină Pista Anim"
+#. 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 "Creați pistă NOUA pentru %s și inserați cheie?"
@@ -375,10 +376,28 @@ msgstr "Creați"
msgid "Anim Insert"
msgstr "Anim Inserați"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Mod Snap (%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 "Animație"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer nu se poate anima singur, doar alți jucători."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Proprietate"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim Creați și Inserați"
@@ -955,7 +974,7 @@ msgstr "Creați %s Nou"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2315,6 +2334,17 @@ msgid "New Window"
msgstr "Fereastră Nouă"
#: 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 "Se rotește când fereastra editorului se redeschide."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Resursele importate nu pot fi salvate."
@@ -3179,10 +3209,6 @@ msgid "Save & Restart"
msgstr "Salvează și Restartează"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Se rotește când fereastra editorului se redeschide."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Actualizare continuă"
@@ -3821,6 +3847,15 @@ msgid "Download from:"
msgstr "Eroare Descărcare"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Execută în Browser"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8780,6 +8815,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Eliminați Autoload"
@@ -8810,6 +8851,12 @@ msgid "Remove All StyleBox Items"
msgstr "Eliminați Autoload"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Adaugă Obiect"
@@ -12407,6 +12454,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Setare poziție punct de curbă"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Setare poziție punct de curbă"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -14064,6 +14121,42 @@ msgstr ""
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 ""
@@ -14580,9 +14673,6 @@ msgstr ""
#~ msgid "Scale Mode (R)"
#~ msgstr "Mod Redimensionare (R)"
-#~ msgid "Snap Mode (%s)"
-#~ msgstr "Mod Snap (%s)"
-
#~ msgid "Tool Scale"
#~ msgstr "Unealtă Dimensiune"
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index a5d8b4ea1c..50d4484e4b 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -102,7 +102,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-29 02:33+0000\n"
+"PO-Revision-Date: 2021-08-10 21:40+0000\n"
"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
@@ -112,7 +112,7 @@ 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 4.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -435,6 +435,7 @@ msgstr "Изменить режим цикла анимации"
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 "Создать новую дорожку для %s и вставить ключ?"
@@ -459,10 +460,28 @@ msgstr "Создать"
msgid "Anim Insert"
msgstr "Вставить"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Не удаётся открыть '%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 "Анимация"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer не может анимировать сам себя, только других."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Свойство «%s» не существует."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Создать и вставить"
@@ -672,9 +691,8 @@ msgid "Go to Previous Step"
msgstr "Перейти к предыдущему шагу"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Сбросить"
+msgstr "Применить сброс"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -693,9 +711,8 @@ msgid "Use Bezier Curves"
msgstr "Использовать кривые Безье"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Вставить треки"
+msgstr "Создать дорожку(и) СБРОСА"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -1020,7 +1037,6 @@ msgid "Edit..."
msgstr "Редактировать..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Перейти к методу"
@@ -1040,9 +1056,9 @@ msgstr "Создать %s"
msgid "No results for \"%s\"."
msgstr "Нет результатов для «%s»."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Нет описания для «%s»."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1142,17 +1158,16 @@ msgid "Owners Of:"
msgstr "Владельцы:"
#: editor/dependency_editor.cpp
-#, fuzzy
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 ""
-"Удалить выбранные файлы из проекта? (Нельзя отменить)\n"
-"Вы можете найти удалённые файлы в корзине, чтобы восстановить их."
+"Удалить выбранные файлы из проекта? (Нельзя отменить.)\n"
+"В зависимости от конфигурации вашей файловой системы файлы будут перемещены "
+"в системную корзину или удалены навсегда."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1161,8 +1176,9 @@ msgid ""
"to the system trash or deleted permanently."
msgstr ""
"Удаляемые файлы требуются для правильной работы других ресурсов.\n"
-"Всё равно удалить их? (Нельзя отменить)\n"
-"Вы можете найти удалённые файлы в корзине, чтобы восстановить их."
+"Всё равно удалить их? (Нельзя отменить.)\n"
+"В зависимости от конфигурации вашей файловой системы файлы будут перемещены "
+"в системную корзину или удалены навсегда."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1332,41 +1348,36 @@ msgid "Licenses"
msgstr "Лицензии"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Ошибка при открытии файла пакета (Не является ZIP форматом)."
+msgstr "Ошибка при открытии файла ресурса «%s» (не в формате ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (Уже существует)"
+msgstr "%s (уже существует)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "Содержимое ресурса «%s» - %d файл(ов) конфликтуют с вашим проектом:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "Содержимое ресурса «%s» - Нет файлов, конфликтующих с вашим проектом:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Распаковка ассетов"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Следующие файлы не удалось извлечь из пакета:"
+msgstr "Следующие файлы не удалось извлечь из пакета «%s»:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "Ещё %d файла(ов)."
+msgstr "(ещё %d файла(ов))"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Пакет успешно установлен!"
+msgstr "Ресурс «%s» успешно установлен!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1378,9 +1389,8 @@ msgid "Install"
msgstr "Установить"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Установщик пакетов"
+msgstr "Установщик ресурсов"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1443,7 +1453,6 @@ msgid "Bypass"
msgstr "Обход"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "Параметры шины"
@@ -1611,13 +1620,12 @@ msgid "Can't add autoload:"
msgstr "Не удаётся добавить автозагрузку:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Файл не существует."
+msgstr "Неверный путь «%s». Файл не существует."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s — недопустимый путь. Нужен ресурсный путь (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1641,9 +1649,8 @@ msgid "Name"
msgstr "Название"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Переменная"
+msgstr "Глобальная переменная"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1817,48 +1824,52 @@ msgstr "Панель «Импорт»"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Позволяет просматривать и редактировать 3D-сцены."
#: 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 ""
+msgstr "Предоставляет встроенный доступ к Библиотеке ресурсов."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+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
-#, fuzzy
msgid "(current)"
-msgstr "(Текущий)"
+msgstr "(текущий)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(нет)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "Удалить текущий выбранный профиль, «%s»? Не может быть отменено."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1890,19 +1901,16 @@ msgid "Enable Contextual Editor"
msgstr "Включить контекстный редактор"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Свойства:"
+msgstr "Свойства класса:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Возможности"
+msgstr "Основные возможности:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Доступные классы:"
+msgstr "Узлы и классы:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1921,7 +1929,6 @@ msgid "Error saving profile to path: '%s'."
msgstr "Ошибка сохранения профиля в «%s»."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
msgstr "Сбросить настройки"
@@ -1930,14 +1937,12 @@ msgid "Current Profile:"
msgstr "Текущий профиль:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Стереть профиль"
+msgstr "Создать профиль"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Удалить тайл"
+msgstr "Удалить профиль"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1957,18 +1962,18 @@ msgid "Export"
msgstr "Экспорт"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Текущий профиль:"
+msgstr "Настроить выбранный профиль:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Параметры текстуры"
+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:"
@@ -1995,7 +2000,6 @@ msgid "Select Current Folder"
msgstr "Выбрать текущую папку"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
msgstr "Файл существует, перезаписать?"
@@ -2390,6 +2394,17 @@ 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 "Импортированные ресурсы не могут быть сохранены."
@@ -2621,13 +2636,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"Текущая сцена не имеет корневого узла, но %d изменённых внешних ресурсов всё "
+"равно были сохранены."
#: 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..."
@@ -3010,9 +3028,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Обзор ресурсов-сирот..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Переименовать проект"
+msgstr "Перезагрузить текущий проект"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3171,22 +3188,20 @@ msgid "Help"
msgstr "Справка"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Открыть документацию"
+msgstr "Онлайн-документация"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Вопросы и ответы"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "Сообщить об ошибке"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "Установить значение"
+msgstr "Предложить функцию"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3197,9 +3212,8 @@ msgid "Community"
msgstr "Сообщество"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "О Godot Engine"
+msgstr "О Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3251,10 +3265,6 @@ msgid "Save & Restart"
msgstr "Сохранить и перезапустить"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Вращается, когда окно редактора перерисовывается."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Непрерывное обновление"
@@ -3297,14 +3307,12 @@ msgid "Manage Templates"
msgstr "Управление шаблонами"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
msgstr "Установить из файла"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Выберите источник полисетки:"
+msgstr "Выберите файл исходников android"
#: editor/editor_node.cpp
msgid ""
@@ -3387,9 +3395,8 @@ msgid "Select"
msgstr "Выделение"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Выбрать текущую папку"
+msgstr "Выбрать текущий"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3424,9 +3431,8 @@ msgid "No sub-resources found."
msgstr "Вложенные ресурсы не найдены."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Вложенные ресурсы не найдены."
+msgstr "Открыть список вложенных ресурсов."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3453,14 +3459,12 @@ msgid "Update"
msgstr "Обновление"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Версия:"
+msgstr "Версия"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Авторы"
+msgstr "Автор"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3473,14 +3477,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 %"
@@ -3507,6 +3509,12 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Включительно: Включает время других функций, вызываемых этой функцией.\n"
+"Используйте для выявления узких мест.\n"
+"\n"
+"Субъект: учитывает только время, затраченное в самой функции, а не в других "
+"функциях, вызываемых этой функцией.\n"
+"Используйте для поиска отдельных функций для оптимизации."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3628,7 +3636,6 @@ msgid "Paste"
msgstr "Вставить"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "Преобразовать в %s"
@@ -3679,10 +3686,9 @@ msgid "Did you forget the '_run' method?"
msgstr "Быть может вы забыли метод _run()?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Зажмите Ctrl, чтобы округлить до целых. Зажмите Shift для более точных "
+"Зажмите %s, чтобы округлить до целых. Зажмите Shift для более точных "
"изменений."
#: editor/editor_sub_scene.cpp
@@ -3703,49 +3709,43 @@ msgstr "Импортировать из узла:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Открыть папку, содержащую эти шаблоны."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Удалить эти шаблоны."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "Файла «%s» не существует."
+msgstr "Нет доступных зеркал."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Получение зеркал, пожалуйста, ждите..."
+msgstr "Получение списка зеркал..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Начало загрузки..."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Ошибка при запросе URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
msgstr "Подключение к зеркалу..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Невозможно определить имя хоста:"
+msgstr "Не удалось разрешить запрошенный адрес."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Не удаётся подключиться к хосту:"
+msgstr "Не удалось подключиться к зеркалу."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Нет ответа от хоста:"
+msgstr "Нет ответа от зеркала."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3753,18 +3753,16 @@ msgid "Request failed."
msgstr "Не удалось выполнить запрос."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Запрос не прошёл, слишком много перенаправлений"
+msgstr "Запрос завершился из-за циклических перенаправлений."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Не удалось выполнить запрос."
+msgstr "Не удалось выполнить запрос:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Загрузка завершена; извлечение шаблонов..."
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3783,14 +3781,14 @@ msgid "Error getting the list of mirrors."
msgstr "Ошибка при получении списка зеркал."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr ""
-"Ошибка парсинга JSON списка зеркал. Пожалуйста, сообщите об этой проблеме!"
+"Ошибка при разборе JSON со списком зеркал. Пожалуйста, сообщите об этой "
+"проблеме!"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Лучшее доступное зеркало"
#: editor/export_template_manager.cpp
msgid ""
@@ -3843,24 +3841,20 @@ msgid "SSL Handshake Error"
msgstr "Ошибка рукопожатия SSH"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Не удаётся открыть архив шаблонов экспорта."
+msgstr "Не удалось открыть архив шаблонов экспорта."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Неверный формат version.txt файла внутри шаблонов: %s."
+msgstr "Неверный формат version.txt внутри файла шаблонов экспорта: %s."
#: 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"
@@ -3871,9 +3865,8 @@ msgid "Importing:"
msgstr "Импортируется:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Удалить версию шаблона «%s»?"
+msgstr "Удалить шаблоны для версии «%s»?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3889,58 +3882,65 @@ msgstr "Текущая версия:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
-msgstr ""
+msgstr "Шаблоны экспорта отсутствуют. Загрузите их или установите из файла."
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+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."
-msgstr ""
+msgstr "Открывает папку, содержащую установленные шаблоны для текущей версии."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Удалить"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Начальное значение для счетчика"
+msgstr "Удалить шаблоны для текущей версии."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Ошибка загрузки"
+msgstr "Загрузить из:"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Запустить в браузере"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Копировать ошибку"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+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
-#, fuzzy
msgid "Install from File"
msgstr "Установить из файла"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Импортировать шаблоны из ZIP файла"
+msgstr "Установить шаблоны из локального файла."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3948,19 +3948,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"
@@ -3975,6 +3972,9 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Шаблоны будут продолжать загружаться.\n"
+"После завершения загрузки может произойти кратковременное зависание "
+"редактора."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4122,35 +4122,32 @@ msgid "Collapse All"
msgstr "Свернуть все"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Поиск файлов"
+msgstr "Сортировать файлы"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Сортировать по имени (по возрастанию)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Сортировать по имени (по убыванию)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Сортировать по типу (по возрастанию)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Сортировать по типу (по убыванию)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Последнее изменение"
+msgstr "Сортировать по последнему изменению"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Последнее изменение"
+msgstr "Сортировать по первому изменению"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4162,7 +4159,7 @@ msgstr "Переименовать..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Сфокусироваться на поле поиска"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4470,14 +4467,12 @@ 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"
@@ -4502,23 +4497,20 @@ 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 "Редактировать ресурс из буфера обмена"
#: 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."
@@ -4533,9 +4525,8 @@ msgid "History of recently edited objects."
msgstr "История недавно отредактированных объектов."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Открыть документацию"
+msgstr "Открыть документацию для этого объекта."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4546,9 +4537,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!"
@@ -4793,9 +4783,8 @@ msgid "Blend:"
msgstr "Смешивание:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Параметр изменён"
+msgstr "Параметр изменён:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5525,11 +5514,11 @@ msgstr "Все"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Поиск шаблонов, проектов и демо"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Поиск ресурсов (исключая шаблоны, проекты и демо)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5573,7 +5562,7 @@ msgstr "ZIP файл ассетов"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Аудио превью Старт/Пауза"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5830,13 +5819,12 @@ 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"
-"Переопределяет игровую камеру камерой редактора viewport."
+"Переопределяет игровую камеру запущенного проекта камерой viewport редактора."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5845,6 +5833,9 @@ msgid ""
"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
@@ -5912,31 +5903,27 @@ msgstr "Режим выделения"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Drag: Rotate selected node around pivot."
-msgstr "Удалить выделенный узел или переход."
+msgstr "Тащить: Вращать выделенный узел вокруг pivot."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Тащить: Перемещение"
+msgstr "Alt+Тащить: перемещение выбранного узла."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "V: Set selected node's pivot position."
-msgstr "Удалить выделенный узел или переход."
+msgstr "V: Задать положение pivot выделенного узла."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Показывает список всех объектов нажатой позиции,\n"
-"(так же как и Alt+ПКМ в режиме выделения)."
+"Alt+ПКМ: Показать список всех узлов в выбранной позиции, включая "
+"заблокированные."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "ПКМ: Добавить узел в выбранной позиции."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6174,14 +6161,12 @@ 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
msgid "Instance Scene Here"
-msgstr "Дополнить сценой(ами)"
+msgstr "Инстанцировать сцену сюда"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6197,49 +6182,43 @@ msgstr "Панорамировать вид"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Масштаб 3,125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Масштаб 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Масштаб 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Отдалить"
+msgstr "Масштаб 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Отдалить"
+msgstr "Масштаб 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Отдалить"
+msgstr "Масштаб 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Отдалить"
+msgstr "Масштаб 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Отдалить"
+msgstr "Масштаб 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Отдалить"
+msgstr "Масштаб 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Масштаб 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6484,9 +6463,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"
@@ -6522,9 +6500,8 @@ msgid "No mesh to debug."
msgstr "Нет полисетки для отладки."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "У модели нет UV в этом слое"
+msgstr "Полисетка не имеет UV в слое %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6589,9 +6566,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 ""
@@ -6599,20 +6575,23 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Создает упрощенную выпуклую форму столкновения.\n"
+"Она похожа на одиночную форму столкновения, но в некоторых случаях может "
+"получиться более простая геометрия, ценой снижения точности."
#: editor/plugins/mesh_instance_editor_plugin.cpp
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"
-"Это средний по производительности вариант между двумя предыдущими."
+"Это средний по производительности вариант между одиночным выпуклым "
+"столкновением и столкновением на основе полигонов."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -7255,24 +7234,20 @@ 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/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7836,20 +7811,17 @@ msgid "None"
msgstr "Пусто"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Государство"
+msgstr "Повернуть"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Перемещение:"
+msgstr "Сдвинуть"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Масштаб:"
+msgstr "Масштабировать"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7872,52 +7844,44 @@ msgid "Animation Key Inserted."
msgstr "Ключ анимации вставлен."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Высота"
+msgstr "Высота:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Рыскание:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Размер: "
+msgstr "Размер:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Нарисовано объектов"
+msgstr "Отрисовано объектов:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Изменения материала"
+msgstr "Материалов изменено:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Изменения шейдеров"
+msgstr "Шейдеров изменено:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Изменения поверхности"
+msgstr "Поверхностей изменено:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Вызовы отрисовки"
+msgstr "Вызовов отрисовки:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Вершины"
+msgstr "Вершины:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS: %d (%s мс)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -8072,9 +8036,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"
@@ -8097,9 +8060,8 @@ msgstr ""
"игры."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Преобразовать в %s"
+msgstr "Преобразовать комнаты"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8121,7 +8083,6 @@ msgstr ""
"(«рентген»)."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Привязать узлы к полу"
@@ -8139,7 +8100,7 @@ msgstr "Использовать привязки"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Преобразует комнаты для portal culling."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8235,9 +8196,8 @@ msgid "View Grid"
msgstr "Отображать сетку"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Настройки окна просмотра"
+msgstr "Отображать portal culling"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8559,221 +8519,196 @@ msgid "TextureRegion"
msgstr "Область текстуры"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Цвет"
+msgstr "Цвета"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Шрифт"
+msgstr "Шрифты"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Иконка"
+msgstr "Иконки"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "Стиль"
+msgstr "Стили"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} цвет(ов)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Вложенные ресурсы не найдены."
+msgstr "Цвета не найдены."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Константы"
+msgstr "{num} константа(ы)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Цветовая константа."
+msgstr "Константы не найдены."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} шрифт(ов)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "Не найдено!"
+msgstr "Шрифты не найдены."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} иконка(ок)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "Не найдено!"
+msgstr "Иконки не найдены."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} стиль(ей)"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "Вложенные ресурсы не найдены."
+msgstr "Стили не найдены."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} выбрано в данный момент"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "Для импорта ничего не выбрано."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Импортировать тему"
+msgstr "Импортировать элементы темы"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Импорт элементов {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Выйти из редактора?"
+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"
-msgstr ""
+msgstr "С данными"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Выбрать узел"
+msgstr "Выбрать по типу данных:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Выберите разделение, чтобы стереть его."
+msgstr "Выбрать все видимые цвета."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Выделить все видимые цвета и их данные."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Снять выделение со всех видимых цветов."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Сначала выберите элемент настроек!"
+msgstr "Выбрать все видимые константы."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Выделить все видимые константы и их данные."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Снять выделение со всех видимых констант."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Сначала выберите элемент настроек!"
+msgstr "Выбрать все видимые шрифты."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "Выделить все видимые шрифты и их данные."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Снять выделение со всех видимых шрифтов."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Сначала выберите элемент настроек!"
+msgstr "Выбрать все видимые иконки."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Сначала выберите элемент настроек!"
+msgstr "Выбрать все видимые иконки и их данные."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Сначала выберите элемент настроек!"
+msgstr "Снять выделение со всех видимых иконок."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Выделить все видимые стили."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "Выделить все видимые стили и их данные."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+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
-#, fuzzy
msgid "Collapse types."
-msgstr "Свернуть все"
+msgstr "Свернуть типы."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Развернуть все"
+msgstr "Развернуть типы."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Выбрать файл шаблона"
+msgstr "Выбрать все элементы темы."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Выбрать точки"
+msgstr "Выделить с данными"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Выделить все элементы темы с их данными."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Выделить всё"
+msgstr "Снять выделение со всего"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Снять выделение со всех элементов темы."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Импортировать сцену"
+msgstr "Импортировать выделенное"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8781,271 +8716,248 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"На вкладке «Импорт элементов» выбраны некоторые элементы. При закрытии этого "
+"окна выбор будет потерян.\n"
+"Всё равно закрыть?"
+
+#: 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
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Удалить все элементы"
+msgstr "Удалить все цвета"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Удалить элемент"
+msgstr "Переименовать элемент"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Удалить все элементы"
+msgstr "Удалить все константы"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Удалить все элементы"
+msgstr "Удалить все шрифты"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Удалить все элементы"
+msgstr "Удалить все иконки"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Удалить все элементы"
+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
-#, fuzzy
msgid "Add Color Item"
-msgstr "Добавить элемент класса"
+msgstr "Добавить цвет"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Добавить элемент класса"
+msgstr "Добавить константу"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Добавить элемент"
+msgstr "Добавить шрифт"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Добавить элемент"
+msgstr "Добавить иконку"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Добавить все элементы"
+msgstr "Добавить стиль"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Удалить элемент класса"
+msgstr "Переименовать цвет"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Удалить элемент класса"
+msgstr "Переименовать константу"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Переименовать узел"
+msgstr "Переименовать шрифт"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Переименовать узел"
+msgstr "Переименовать иконку"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Удалить выбранный элемент"
+msgstr "Удалить стиль"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Недопустимый файл, не раскладка аудио шины."
+msgstr "Неверный файл, не ресурс темы."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Недопустимый файл, так же, как и редактируемый ресурс темы."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Управление шаблонами"
+msgstr "Управление элементами темы"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Редактируемый элемент"
+msgstr "Редактировать элементы"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Тип:"
+msgstr "Типы:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Тип:"
+msgstr "Добавить тип:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Добавить элемент"
+msgstr "Добавить элемент:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Добавить все элементы"
+msgstr "Добавить стиль"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Удалить элемент"
+msgstr "Удалить элементы:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "Удалить элемент класса"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Удалить элемент класса"
+msgstr "Удалить пользовательские элементы"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Удалить все элементы"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Тема элементов GUI"
+msgstr "Добавить элемент темы"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Имя узла:"
+msgstr "Старое имя:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Импортировать тему"
+msgstr "Импортировать элементы"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "По умолчанию"
+msgstr "Тема по умолчанию"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Редактировать тему"
+msgstr "Тема редактора"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Удалить ресурс"
+msgstr "Выбрать другой ресурс темы:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Импортировать тему"
+msgstr "Другая тема"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Переименовать дорожку"
+msgstr "Подтвердить переименование элемента"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Групповое переименование"
+msgstr "Отменить переименование элемента"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Переопределить"
+msgstr "Переопределить элемент"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+msgstr "Открепить этот StyleBox в качестве основного стиля."
#: 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 ""
+"Закрепить этот StyleBox в качестве основного стиля. При редактировании его "
+"свойств будут обновлены те же свойства во всех других объектах StyleBoxes "
+"этого типа."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type"
-msgstr "Тип"
+msgstr "Добавить тип"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Добавить элемент"
+msgstr "Добавить тип элемента"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Тип узла"
+msgstr "Типы узлов:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Загрузить по умолчанию"
+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
-#, fuzzy
msgid "Override All"
-msgstr "Переопределить"
+msgstr "Переопределить всё"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "Переопределить все элементы типа по умолчанию."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Тема"
+msgstr "Тема:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
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
msgid "Default Preview"
-msgstr "Обновить предварительный просмотр"
+msgstr "Превью по умолчанию"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Выберите источник полисетки:"
+msgstr "Выбрать UI-сцену:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
+"Переключает средство выбора Control, позволяя визуально выбирать типы "
+"Control для редактирования."
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
@@ -9080,9 +8992,8 @@ msgid "Checked Radio Item"
msgstr "Отмеченный переключатель"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Имен. раздел."
+msgstr "Именованный разделитель"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9135,19 +9046,20 @@ msgstr "Есть,Много,Вариантов"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
msgstr ""
+"Недопустимый путь, ресурс PackedScene, вероятно, был перемещен или удален."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
msgstr ""
+"Недопустимый ресурс PackedScene, он должен иметь корневой узел Control."
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "Недопустимый файл, не раскладка аудио шины."
+msgstr "Неверный файл, не ресурс PackedScene."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "Перезагрузите сцену, чтобы отразить её наиболее актуальное состояние."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -10545,9 +10457,8 @@ msgid "VisualShader"
msgstr "Визуальный шейдер"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Редактировать визуальное свойство"
+msgstr "Редактировать визуальное свойство:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10673,9 +10584,8 @@ msgid "Script"
msgstr "Скрипт"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Режим экспортирования скриптов:"
+msgstr "Режим экспорта GDScript:"
#: editor/project_export.cpp
msgid "Text"
@@ -10683,22 +10593,20 @@ msgstr "Текстовый"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Скомпилированный байткод (более быстрая загрузка)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "Зашифрованный (Напишите ключ ниже)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
msgstr ""
-"Недействительный ключ шифрования (длина ключа должна составлять 64 символа)"
+"Неверный ключ шифрования (должен состоять из 64 шестнадцатеричных символов)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "Ключ шифрования скрипта (256-бит, в шестнадцатеричном виде):"
+msgstr "Ключ шифрования GDScript (256 бит, в шестнадцатеричном виде):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10770,7 +10678,6 @@ msgid "Imported Project"
msgstr "Импортированный проект"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Недопустимое имя проекта."
@@ -10996,14 +10903,12 @@ 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 "Выберите устройство из списка"
+msgstr "Удалить %d проектов из списка?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Выберите устройство из списка"
+msgstr "Удалить этот проект из списка?"
#: editor/project_manager.cpp
msgid ""
@@ -11035,9 +10940,8 @@ msgid "Project Manager"
msgstr "Менеджер проектов"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Проекты"
+msgstr "Локальные проекты"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11048,23 +10952,20 @@ msgid "Last Modified"
msgstr "Последнее изменение"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Экспортировать проект"
+msgstr "Редактировать проект"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Переименовать проект"
+msgstr "Запустить проект"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "Сканировать"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Проекты"
+msgstr "Сканировать проекты"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -11075,12 +10976,10 @@ msgid "New Project"
msgstr "Новый проект"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Импортированный проект"
+msgstr "Импортировать проект"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
msgstr "Переименовать проект"
@@ -11093,9 +10992,8 @@ msgid "About"
msgstr "О Godot Engine"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Библиотека ресурсов"
+msgstr "Проекты Библиотеки ресурсов"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11107,7 +11005,7 @@ msgstr "Удалить все"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "Также удалить содержимое проекта (нельзя отменить!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11122,18 +11020,16 @@ msgstr ""
"Хотите изучить официальные примеры в Библиотеке ресурсов?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Фильтр свойств"
+msgstr "Фильтр проектов"
#: editor/project_manager.cpp
-#, fuzzy
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 ""
-"Поле поиска фильтрует проекты по имени и последнему компоненту пути\n"
+"Это поле фильтрует проекты по имени и последнему компоненту пути.\n"
"Чтобы отфильтровать проекты по имени и полному пути, запрос должен содержать "
"хотя бы один символ `/`."
@@ -11143,7 +11039,7 @@ msgstr "Клавиша "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "Физическая клавиша"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11191,7 +11087,7 @@ msgstr "Устройство"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (Физическая)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11334,23 +11230,20 @@ msgid "Override for Feature"
msgstr "Переопределение свойства"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Добавить перевод"
+msgstr "Добавить %d переводов"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "Удалить перевод"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "Перенаправлен ресурс перенаправления"
+msgstr "Переназначение ресурсов перевода: Добавить %d путь(ей)"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "Перенаправлен ресурс перенаправления"
+msgstr "Переназначение ресурсов перевода: Добавить %d переназначение(ий)"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11766,7 +11659,7 @@ msgstr "Узел должен принадлежать редактируемо
#: editor/scene_tree_dock.cpp
msgid "Instantiated scenes can't become root"
-msgstr "Инстанцированные сцены не могут стать корневыми"
+msgstr "Инстанцированные сцены не могут стать корнем"
#: editor/scene_tree_dock.cpp
msgid "Make node as Root"
@@ -11796,12 +11689,16 @@ msgstr "Удалить узел «%s»?"
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 ""
+"Для сохранения ветви как сцены требуется выбрать только один узел, но вы "
+"выбрали %d узлов."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11810,6 +11707,12 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"Невозможно сохранить ветку корневого узла в качестве инстанцированной "
+"сцены.\n"
+"Чтобы создать редактируемую копию текущей сцены, продублируйте её с помощью "
+"контекстного меню панели «Файловая система»\n"
+"или создайте унаследованную сцену, используя вместо этого Сцена > Новая "
+"унаследованная сцена..."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11817,6 +11720,10 @@ msgid ""
"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 ""
+"Невозможно сохранить ветку уже инстанцированной сцены.\n"
+"Чтобы создать вариант сцены, вы можете создать унаследованную сцену на "
+"основе инстанцированной сцены, используя вместо этого Сцена > Новая "
+"унаследованная сцена..."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12225,6 +12132,8 @@ 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:"
@@ -12296,7 +12205,7 @@ msgstr "Копировать ошибку"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "Открытый исходный код C++ на GitHub"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12475,6 +12384,16 @@ msgstr "Изменить высоту цилиндра"
msgid "Change Ray Shape Length"
msgstr "Изменить длину луча"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Установить положение точки кривой"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Установить положение точки кривой"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Изменить радиус цилиндра"
@@ -12585,14 +12504,12 @@ msgid "Object can't provide a length."
msgstr "Объект не может предоставить длину."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "Экспортировать библиотеку полисеток"
+msgstr "Экспорт полисетки GLTF2"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Экспортировать..."
+msgstr "Экспорт GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12624,20 +12541,19 @@ msgstr "Удалить выделенную сетку"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Fill Selection"
-msgstr "Залить выделенную GridMap"
+msgstr "Залить выделенную сетку"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paste Selection"
-msgstr "Вставка выделенной сетки"
+msgstr "Вставить выделенную сетку"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paint"
msgstr "Рисование сетки"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "Залить выделенную GridMap"
+msgstr "Выделение сетки"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12653,11 +12569,11 @@ msgstr "Отключить обрезку"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Above"
-msgstr "Отрезать сверху"
+msgstr "Обрезать сверху"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Below"
-msgstr "Отрезать снизу"
+msgstr "Обрезать снизу"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
@@ -12889,14 +12805,12 @@ msgid "Add Output Port"
msgstr "Добавить выходной порт"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "Изменить тип"
+msgstr "Изменить тип порта"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "Изменить имя входного порта"
+msgstr "Изменить имя порта"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -13011,9 +12925,8 @@ msgid "Add Preload Node"
msgstr "Добавить предзагрузочный узел"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "Добавить узел"
+msgstr "Добавить узел(узлы)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -13276,37 +13189,31 @@ msgstr "Выберите устройство из списка"
#: platform/android/export/export.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "Выполняется на %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting APK..."
-msgstr "Экспорт всех"
+msgstr "Экспорт APK..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Uninstalling..."
-msgstr "Удалить"
+msgstr "Удаление..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Installing to device, please wait..."
-msgstr "Загрузка, пожалуйста, ждите..."
+msgstr "Установка на устройство, пожалуйста, ждите..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not install to device: %s"
-msgstr "Не возможно добавить сцену!"
+msgstr "Не удалось установить на устройство: %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Running on device..."
-msgstr "Запуск пользовательского скрипта..."
+msgstr "Запуск на устройстве..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not execute on device."
-msgstr "Невозможно создать папку."
+msgstr "Не удалось выполнить на устройстве."
#: platform/android/export/export.cpp
msgid "Unable to find the 'apksigner' tool."
@@ -13431,40 +13338,37 @@ msgid ""
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"Не удалось найти команду «apksigner».\n"
+"Пожалуйста, проверьте наличие программы в каталоге Android SDK build-tools.\n"
+"Результат %s не подписан."
#: platform/android/export/export.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "Подписание отладочного %s..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Signing release %s..."
-msgstr ""
-"Сканирование файлов,\n"
-"пожалуйста, ждите..."
+msgstr "Подписание релиза %s..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not find keystore, unable to export."
-msgstr "Не удалось открыть шаблон для экспорта:"
+msgstr "Не удалось найти хранилище ключей, невозможно экспортировать."
#: platform/android/export/export.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "«apksigner» завершился с ошибкой #%d"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Verifying %s..."
-msgstr "Добавление %s..."
+msgstr "Проверка %s..."
#: platform/android/export/export.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "Проверка «apksigner» «%s» не удалась."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting for Android"
-msgstr "Экспорт всех"
+msgstr "Экспорт для Android"
#: platform/android/export/export.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
@@ -13480,7 +13384,7 @@ msgstr "Неверное имя файла! Android APK требует расш
#: platform/android/export/export.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "Неподдерживаемый формат экспорта!\n"
#: platform/android/export/export.cpp
msgid ""
@@ -13506,16 +13410,15 @@ msgstr ""
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"Невозможно перезаписать файлы res://android/build/res/*.xml с именем проекта"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr "Отсутствует project.godot в папке проекта."
+msgstr "Не удалось экспортировать файлы проекта в проект gradle\n"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not write expansion package file!"
-msgstr "Не удалось записать файл:"
+msgstr "Не удалось записать расширение файла пакета!"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -13543,21 +13446,20 @@ msgstr ""
"проекта gradle на наличие выходных данных."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Package not found: %s"
-msgstr "Анимация не найдена: %s"
+msgstr "Пакет не найден: %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Creating APK..."
-msgstr "Создание контуров..."
+msgstr "Создание APK..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "Не удалось открыть шаблон для экспорта:"
+msgstr ""
+"Не удалось найти шаблон APK для экспорта:\n"
+"%s"
#: platform/android/export/export.cpp
msgid ""
@@ -13566,16 +13468,17 @@ msgid ""
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"В шаблоне экспорта отсутствуют библиотеки для выбранных архитектур: %s.\n"
+"Пожалуйста, создайте шаблон со всеми необходимыми библиотеками или снимите "
+"флажки с отсутствующих архитектур в пресете экспорта."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Adding files..."
-msgstr "Добавление %s..."
+msgstr "Добавление файлов..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files"
-msgstr "Не удалось записать файл:"
+msgstr "Не удалось экспортировать файлы проекта"
#: platform/android/export/export.cpp
msgid "Aligning APK..."
@@ -13583,7 +13486,7 @@ msgstr "Выравнивание APK..."
#: platform/android/export/export.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "Не удалось распаковать временный невыровненный APK."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13630,45 +13533,40 @@ msgid "Could not write file:"
msgstr "Не удалось записать файл:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Не удалось записать файл:"
+msgstr "Не удалось прочитать файл:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "Не удалось прочитать пользовательскую HTML оболочку:"
+msgstr "Не удалось прочитать HTML-оболочку:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "Невозможно создать папку."
+msgstr "Не удалось создать каталог HTTP-сервера:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Ошибка сохранения сцены."
+msgstr "Ошибка запуска HTTP-сервера:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Неверный идентификатор:"
+msgstr "Неверный идентификатор пакета:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "Предупреждение: требуется подписание кода."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "Предупреждение: требуется усиленный рантайм."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "Предупреждение: имя Apple ID не указано."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "Предупреждение: пароль Apple ID не указан."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14102,6 +14000,9 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"Свойство GIProbe Compress было объявлено устаревшим из-за известных ошибок и "
+"больше не имеет никакого эффекта.\n"
+"Чтобы убрать это предупреждение, отключите свойство Compress в GIProbe."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14187,15 +14088,15 @@ msgstr "Узел А и Узел В должны быть различными о
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomManager не должен быть ребёнком или внуком Portal."
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Room не должен быть ребёнком или внуком Portal."
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomGroup не должен быть ребёнком или внуком Portal."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -14207,42 +14108,83 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
-msgstr ""
+msgstr "Room не должен быть ребёнком или внуком другого Room."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "RoomManager не должен располагаться внутри Room."
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "RoomGroup не должен располагаться внутри Room."
#: 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 ""
+"Выпуклый корпус комнаты содержит большое количество плоскостей.\n"
+"Рассмотрите возможность упрощения границы комнаты для повышения "
+"производительности."
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "RoomManager не должен располагаться внутри RoomGroup."
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "RoomList не был назначен."
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
-msgstr ""
+msgstr "Узел RoomList должен быть Spatial (или унаследован от Spatial)."
#: 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 ""
+"Portal Depth Limit установлено на ноль.\n"
+"Будет отрисовываться только комната, в которой находится камера."
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
+msgstr "В SceneTree должен быть только один RoomManager."
+
+#: 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
@@ -14309,7 +14251,7 @@ msgstr "Анимация не найдена: %s"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "Анимация - Применить сброс"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14484,25 +14426,28 @@ msgid "Invalid comparison function for that type."
msgstr "Неверная функция сравнения для этого типа."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Изменения могут быть назначены только в функции вершины."
+msgstr "Varying не может быть задано в функции «%s»."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"Varying, заданные в функции «vertex», не могут быть изменены в «fragment» "
+"или «light»."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"Varying, заданные в функции «fragment», не могут быть изменены в «vertex» "
+"или «light»."
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
+msgstr "Varying стадии fragment не доступны из пользовательских функций!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -15507,9 +15452,6 @@ msgstr "Константы не могут быть изменены."
#~ msgid "I see..."
#~ msgstr "Ясно..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Не удаётся открыть '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Ясно"
diff --git a/editor/translations/si.po b/editor/translations/si.po
index 94841d0879..595e0041a9 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -348,6 +348,7 @@ msgstr "සජීවීකරණ පුනරාවර්ථනය"
msgid "Remove Anim Track"
msgstr "Anim ලුහුබදින්නා ඉවත් කරන්න"
+#. 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 "%s සදහා නව ලුහුබදින්නෙත් සාදා යතුරක් ඇතුලත් කරන්න?"
@@ -372,10 +373,27 @@ msgstr "සාදන්න"
msgid "Anim Insert"
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 ""
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "property '%s'"
+msgstr "ලක්ෂණය ලුහුබදින්න"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim සාදන්න සහ ඇතුලත් කරන්න"
@@ -942,7 +960,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2237,6 +2255,17 @@ 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 ""
@@ -3017,10 +3046,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "අඛණ්ඩව"
@@ -3627,6 +3652,14 @@ 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 ""
@@ -8341,6 +8374,12 @@ msgid ""
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 ""
@@ -8367,6 +8406,12 @@ 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 ""
@@ -11809,6 +11854,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13418,6 +13471,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 6deda77711..54736cff85 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -346,6 +346,7 @@ msgstr "Zmeniť Loop Mode Animacie"
msgid "Remove Anim Track"
msgstr "Vymazať Track Animácie"
+#. 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 "Vytvoriť NOVÝ track za %s a vložiť kľúč?"
@@ -370,10 +371,27 @@ msgstr "Vytvoriť"
msgid "Anim Insert"
msgstr "Animácia Vložiť"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Animácie"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer nemôže animovať sám seba, iba ostatný hráči."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Vlastnosť"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Animácia Vytvoriť & Vložiť"
@@ -945,7 +963,7 @@ msgstr "Vytvoriť Nový %s"
msgid "No results for \"%s\"."
msgstr "Žiadne výsledky pre \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2295,6 +2313,17 @@ msgid "New Window"
msgstr "Nové Okno"
#: 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 "Otáča sa, keď sa okno editora redistribuuje."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Importované zdroje nemôžu byť uložené."
@@ -3150,10 +3179,6 @@ msgid "Save & Restart"
msgstr "Uložiť & Reštartovať"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Otáča sa, keď sa okno editora redistribuuje."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Aktualizovať priebežne"
@@ -3812,6 +3837,15 @@ msgid "Download from:"
msgstr "Chyba Sťahovania"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Otvoriť v File Manažérovy"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8677,6 +8711,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Všetky vybrané"
@@ -8707,6 +8747,12 @@ msgid "Remove All StyleBox Items"
msgstr "Všetky vybrané"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Pridať do Obľúbených"
@@ -12299,6 +12345,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Všetky vybrané"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Všetky vybrané"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13978,6 +14034,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index 53b4bca499..725f88f0ab 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -369,6 +369,7 @@ msgstr "Spremeni Zanko Animacije"
msgid "Remove Anim Track"
msgstr "Odstrani animacijsko sled"
+#. 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 "Ustvarim NOVO sled za %s in vstavi ključ?"
@@ -393,10 +394,28 @@ msgstr "Ustvari"
msgid "Anim Insert"
msgstr "Vstavi Animacijo"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Način Zaskoka (%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 "Animacija"
+
#: 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
+#, fuzzy
+msgid "property '%s'"
+msgstr "Lastnosti"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Ustvari & Vstavi Animacijo"
@@ -998,7 +1017,7 @@ msgstr "Ustvari Nov %s"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2397,6 +2416,18 @@ 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
+#, fuzzy
+msgid "Spins when the editor window redraws."
+msgstr "Vrti se ob spremembi okna urejevalnika!"
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr ""
@@ -3270,11 +3301,6 @@ msgstr "Shrani & Zapri"
#: editor/editor_node.cpp
#, fuzzy
-msgid "Spins when the editor window redraws."
-msgstr "Vrti se ob spremembi okna urejevalnika!"
-
-#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
msgstr "Neprekinjeno"
@@ -3922,6 +3948,15 @@ msgid "Download from:"
msgstr "Napaka Pri Prenosu"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Pokaži V Upravitelju Datotek"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8959,6 +8994,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Odstrani Vse Stvari"
@@ -8989,6 +9030,12 @@ msgid "Remove All StyleBox Items"
msgstr "Odstrani Vse Stvari"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Priljubljene:"
@@ -12643,6 +12690,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Nastavi Položaj Krivuljne Točke"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Nastavi Položaj Krivuljne Točke"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -14339,6 +14396,42 @@ msgstr ""
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 ""
@@ -14856,9 +14949,6 @@ msgstr "Konstante ni možno spreminjati."
#~ msgid "Scale Mode (R)"
#~ msgstr "Način Obsega (R)"
-#~ msgid "Snap Mode (%s)"
-#~ msgstr "Način Zaskoka (%s)"
-
#~ msgid "Tool Select"
#~ msgstr "Izbira Orodja"
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index f843d97c4e..ded08d5532 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -342,6 +342,7 @@ msgstr "Ndrysho Metodën e Përsëritjes së Animacionit"
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 ""
@@ -366,10 +367,27 @@ msgstr "Krijo"
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
+#, fuzzy
+msgid "animation"
+msgstr "Animacionet:"
+
#: 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
+#, fuzzy
+msgid "property '%s'"
+msgstr "Vetitë:"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr ""
@@ -938,7 +956,7 @@ msgstr "Krijo %s të ri"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2330,6 +2348,17 @@ 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 "Rrotullohet kur dritarja e editorit rivizaton."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Resurset e importuara nuk mund të ruhen."
@@ -3207,10 +3236,6 @@ msgid "Save & Restart"
msgstr "Ruaj & Rifillo"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Rrotullohet kur dritarja e editorit rivizaton."
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "I Vazhdueshëm"
@@ -3863,6 +3888,15 @@ msgid "Download from:"
msgstr "Shkarko"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Hap në Menaxherin e Skedarëve"
+
+#: editor/export_template_manager.cpp
+msgid "Copy Mirror URL"
+msgstr ""
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8684,6 +8718,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Hiq Autoload-in"
@@ -8714,6 +8754,12 @@ msgid "Remove All StyleBox Items"
msgstr "Hiq Autoload-in"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Shto te të preferuarat"
@@ -12247,6 +12293,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13891,6 +13945,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index f95781bd70..0a915e03bf 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -382,6 +382,7 @@ msgstr "Промени циклус анимације"
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 "Направите нову траку за %s и убаците кључ?"
@@ -406,11 +407,29 @@ msgstr "Направи"
msgid "Anim Insert"
msgstr "Налепи"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Режим лепљења:"
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "animation"
+msgstr "Анимација"
+
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer не може сам себе да анимира, само друге плејере."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Особина %s' не постоји."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Направи анимацију и убаци"
@@ -1051,7 +1070,7 @@ msgstr "Направи нов"
msgid "No results for \"%s\"."
msgstr "Нема резултата за \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2502,6 +2521,18 @@ 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
+#, fuzzy
+msgid "Spins when the editor window redraws."
+msgstr "Окрене се кад се едиторски прозор поново обоји!"
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Imported resources can't be saved."
msgstr "Увезени ресурси не могу бити упамћени."
@@ -3397,11 +3428,6 @@ msgstr "Сачувај и изађи"
#: editor/editor_node.cpp
#, fuzzy
-msgid "Spins when the editor window redraws."
-msgstr "Окрене се кад се едиторски прозор поново обоји!"
-
-#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
msgstr "Трајан"
@@ -4106,6 +4132,16 @@ msgid "Download from:"
msgstr "Грешка при преузимању"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Покрени у Претраживачу"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Копирај Грешку"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -9423,6 +9459,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Обриши све ставке"
@@ -9453,6 +9495,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "Додај ставке класе"
@@ -13751,6 +13799,16 @@ msgstr "Промени Висину Цилиндар Облика"
msgid "Change Ray Shape Length"
msgstr "Промени Дужину Зрак Облика"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Постави позицију тачке криве"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Постави позицију тачке криве"
+
#: modules/csg/csg_gizmos.cpp
#, fuzzy
msgid "Change Cylinder Radius"
@@ -15695,6 +15753,42 @@ msgstr ""
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
#, fuzzy
msgid "This body will be ignored until you set a mesh."
@@ -16456,10 +16550,6 @@ msgstr "Константе није могуће мењати."
#~ msgid "Local Coords"
#~ msgstr "Локалне координате"
-#, fuzzy
-#~ msgid "Snap Mode (%s)"
-#~ msgstr "Режим лепљења:"
-
#~ msgid "Tool Select"
#~ msgstr "Избор алатки"
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index 877149b6ea..76982c0b00 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -356,6 +356,7 @@ msgstr "Optimizuj Animaciju"
msgid "Remove Anim Track"
msgstr "Odstrani Kanal Animacije"
+#. 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č?"
@@ -380,10 +381,26 @@ msgstr "Napravi"
msgid "Anim Insert"
msgstr "Animacija Umetni"
+#. 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
+#, fuzzy
+msgid "animation"
+msgstr "Optimizuj Animaciju"
+
#: 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 "Animacija Napravi i Dodaj"
@@ -950,7 +967,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2250,6 +2267,17 @@ 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 ""
@@ -3033,10 +3061,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "Neprekidna"
@@ -3646,6 +3670,14 @@ 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 ""
@@ -8405,6 +8437,12 @@ msgid ""
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 ""
@@ -8432,6 +8470,12 @@ 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 ""
@@ -11915,6 +11959,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13530,6 +13582,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index 7433664d25..373e3aad36 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -14,7 +14,7 @@
# Mattias Münster <mattiasmun@gmail.com>, 2019.
# Anonymous <noreply@weblate.org>, 2020.
# Joakim Lundberg <joakim@joakimlundberg.com>, 2020.
-# Kristoffer Grundström <swedishsailfishosuser@tutanota.com>, 2020.
+# Kristoffer Grundström <swedishsailfishosuser@tutanota.com>, 2020, 2021.
# Jonas Robertsson <jonas.robertsson@posteo.net>, 2020, 2021.
# André Andersson <andre.eric.andersson@gmail.com>, 2020.
# Andreas Westrell <andreas.westrell@gmail.com>, 2020.
@@ -27,8 +27,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-07-13 06:13+0000\n"
-"Last-Translator: Leon <joel.lundborg@gmail.com>\n"
+"PO-Revision-Date: 2021-08-10 21:40+0000\n"
+"Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/"
"godot/sv/>\n"
"Language: sv\n"
@@ -36,7 +36,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.7.2-dev\n"
+"X-Generator: Weblate 4.8-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -357,6 +357,7 @@ msgstr "Ändra Animationsslingläge"
msgid "Remove Anim Track"
msgstr "Ta bort Anim spår"
+#. 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 "Skapa NYTT spår för %s och infoga nyckel?"
@@ -381,11 +382,29 @@ msgstr "Skapa"
msgid "Anim Insert"
msgstr "Anim Infoga"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Kan inte öppna '%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 "Animation"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"Animationsspelaren kan inte animera sig själv, utan bara andra spelare."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Egenskaper"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Anim Skapa & Infoga"
@@ -473,7 +492,7 @@ msgstr "Anim Flytta Nycklar"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
-msgstr ""
+msgstr "Klippbordet är tomt!"
#: editor/animation_track_editor.cpp
msgid "Paste Tracks"
@@ -943,9 +962,8 @@ msgid "Edit..."
msgstr "Ändra..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
-msgstr "Gå Till Metod"
+msgstr "Gå till metod"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -963,9 +981,9 @@ msgstr "Skapa Ny %s"
msgid "No results for \"%s\"."
msgstr "Inga resultat för \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Ingen beskrivning tillgänglig för %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1075,7 +1093,6 @@ msgstr ""
"Du kan hitta de borttagna filerna i systemets papperskorg."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1083,9 +1100,10 @@ msgid ""
"Depending on your filesystem configuration, the files will either be moved "
"to the system trash or deleted permanently."
msgstr ""
-"Filerna som tas bort krävs av andra resurser för att de ska fungera.\n"
-"Ta bort dem ändå? (går inte ångra)\n"
-"Du kan hitta de borttagna filerna i systemets papperskorg."
+"Filerna som ska tas bort krävs av andra resurser för att de ska fungera.\n"
+"Ta bort dem ändå? (Går inte ångra.)\n"
+"Beroende på hur ditt filsystem är inställt så kommer filerna antingen "
+"flyttas till systemets papperskorg eller tas bort permanent."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1260,9 +1278,8 @@ msgid "Error opening asset file for \"%s\" (not in ZIP format)."
msgstr "Fel vid öppning av paketetfil, inte i zip-format."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
-msgstr "%s (Existerar Redan)"
+msgstr "%s (existerar redan)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
@@ -1282,9 +1299,8 @@ msgid "The following files failed extraction from asset \"%s\":"
msgstr "Följande filer misslyckades att packas upp från paketet:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "%d fler filer."
+msgstr "(och %s fler filer)"
#: editor/editor_asset_installer.cpp
#, fuzzy
@@ -1534,9 +1550,8 @@ msgid "Can't add autoload:"
msgstr "Kunde inte lägga till autoladdning:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Fil existerar inte."
+msgstr "%s är en ogiltig genväg. Filen existerar inte."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
@@ -1564,9 +1579,8 @@ msgid "Name"
msgstr "Namn"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Variabel"
+msgstr "Global variabel"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1663,22 +1677,20 @@ msgstr ""
"Fallback Enabled'."
#: editor/editor_export.cpp
-#, fuzzy
msgid ""
"Target platform requires 'PVRTC' texture compression for GLES2. Enable "
"'Import Pvrtc' in Project Settings."
msgstr ""
-"Målplattformen kräver 'ETC' texturkomprimering för GLES2. Aktivera 'Import "
-"Etc' i Projektinställningarna."
+"Målplattformen kräver 'PVRTC'-texturkomprimering för GLES2. Aktivera 'Import "
+"Pvrtc' i projektinställningarna."
#: editor/editor_export.cpp
-#, fuzzy
msgid ""
"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. "
"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings."
msgstr ""
-"Målplattformen kräver 'ETC2' texturkomprimering för GLES3. Aktivera 'Import "
-"Etc 2' i Projektinställningarna."
+"Målplattformen kräver 'ETC2' eller 'PVRTC'-texturkomprimering för GLES3. "
+"Aktivera 'Import Etc 2' eller 'Import Pvrtc' i projektinställningarna."
#: editor/editor_export.cpp
msgid ""
@@ -1742,11 +1754,11 @@ msgstr "Importera"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "Tillåter att visa och redigera 3D-scener."
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "Tillåter att redigera skript via den integrerade skript-redigeraren."
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
@@ -2341,6 +2353,17 @@ msgid "New Window"
msgstr "Nytt Fönster"
#: 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 "Importerade resurser kan inte sparas."
@@ -3198,10 +3221,6 @@ msgid "Save & Restart"
msgstr "Spara & Avsluta"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "Kontinuerlig"
@@ -3844,6 +3863,16 @@ msgid "Download from:"
msgstr "Ladda ner"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Kör i Webbläsare"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Fel"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -6348,7 +6377,7 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat 1"
-msgstr ""
+msgstr "Platt 1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
@@ -8789,6 +8818,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Ta bort Alla"
@@ -8819,6 +8854,12 @@ msgid "Remove All StyleBox Items"
msgstr "Ta bort Alla"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Lägg till i Favoriter"
@@ -12425,6 +12466,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -14103,6 +14152,42 @@ msgstr ""
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 ""
@@ -14878,9 +14963,6 @@ msgstr ""
#~ msgid "I see..."
#~ msgstr "Jag förstår..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Kan inte öppna '%s'."
-
#, fuzzy
#~ msgid "Ugh"
#~ msgstr "Ugh"
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index 5b4e249318..2ad954b971 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -355,6 +355,7 @@ msgstr ""
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 ""
@@ -379,10 +380,26 @@ msgstr ""
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
+#, fuzzy
+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 ""
@@ -945,7 +962,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2241,6 +2258,17 @@ 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 ""
@@ -3022,10 +3050,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3633,6 +3657,14 @@ 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 ""
@@ -8343,6 +8375,12 @@ msgid ""
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 ""
@@ -8370,6 +8408,12 @@ 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 ""
@@ -11815,6 +11859,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13423,6 +13475,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/te.po b/editor/translations/te.po
index 6a4e076543..74998009cd 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -338,6 +338,7 @@ msgstr ""
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 ""
@@ -362,10 +363,25 @@ msgstr ""
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 ""
@@ -920,7 +936,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2211,6 +2227,17 @@ 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 ""
@@ -2991,10 +3018,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3599,6 +3622,14 @@ 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 ""
@@ -8276,6 +8307,12 @@ msgid ""
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 ""
@@ -8300,6 +8337,12 @@ 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 ""
@@ -11708,6 +11751,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13302,6 +13353,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/th.po b/editor/translations/th.po
index ce5e4952f1..231051313a 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -356,6 +356,7 @@ msgstr "เปลี่ยนโหมดการวนซ้ำแอนิเ
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 "เพิ่มแทร็กใหม่สำหรับ %s และเพิ่มคีย์?"
@@ -380,10 +381,28 @@ msgstr "สร้าง"
msgid "Anim Insert"
msgstr "แทรกแอนิเมชัน"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "เปิด '%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 "แอนิเมชัน"
+
#: 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
+#, fuzzy
+msgid "property '%s'"
+msgstr "ไม่พบคุณสมบัติ '%s'"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "สร้างและแทรกแอนิเมชัน"
@@ -954,7 +973,7 @@ msgstr "สร้าง %s ใหม่"
msgid "No results for \"%s\"."
msgstr "ไม่มีผลลัพธ์สำหรับ \"%s\""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2290,6 +2309,17 @@ 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 "ทรัพยากรที่นำเข้ามา ไม่สามารถบันทึกได้"
@@ -3122,10 +3152,6 @@ msgid "Save & Restart"
msgstr "บันทึกและเริ่มใหม่"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "หมุนเมื่อมีการวาดหน้าต่างโปรแกรมใหม"
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "อัพเดทอย่างต่อเนื่อง"
@@ -3776,6 +3802,16 @@ msgid "Download from:"
msgstr "ดาวน์โหลดผิดพลาด"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "รันในเบราเซอร์"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "คัดลอกผิดพลาด"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8592,6 +8628,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "ลบทั้งหมด"
@@ -8622,6 +8664,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "เพิ่มไอเทมคลาส"
@@ -12217,6 +12265,16 @@ msgstr "ปรับความสูงทรงแคปซูล"
msgid "Change Ray Shape Length"
msgstr "ปรับความยาวรังสี"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "กำหนดพิกัดจุดเส้นโค้ง"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "กำหนดพิกัดจุดเส้นโค้ง"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "ปรับรัศมีทรงกระบอก"
@@ -13909,6 +13967,42 @@ msgstr ""
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 "วัตถุนี้จะถูกละเว้นจนกว่าจะตั้ง mesh"
@@ -15120,9 +15214,6 @@ msgstr "ค่าคงที่ไม่สามารถแก้ไขได
#~ msgid "I see..."
#~ msgstr "ตกลง..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "เปิด '%s' ไม่ได้"
-
#~ msgid "Ugh"
#~ msgstr "เออะ"
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 8a735113cc..69a7ef73a2 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -395,6 +395,7 @@ msgstr "Animasyon Döngü Kipini Değiştir"
msgid "Remove Anim Track"
msgstr "Animasyon İzini Kaldır"
+#. 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 "%s için YENİ iz oluştur ve anahtar gir?"
@@ -419,11 +420,29 @@ msgstr "Oluştur"
msgid "Anim Insert"
msgstr "Animasyon Ekle"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "'%s' açılamıyor."
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "animation"
+msgstr "Animasyon"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr ""
"Animasyon Oynatıcısı kendisini oynatamaz, sadece diğer oynatıcılar yapabilir."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "'%s' özelliği mevcut değil."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Animasyon Oluştur & Ekle"
@@ -999,7 +1018,7 @@ msgstr "Yeni %s Oluştur"
msgid "No results for \"%s\"."
msgstr "\"%s\" için sonuç yok."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2350,6 +2369,17 @@ msgid "New Window"
msgstr "Yeni Pencere"
#: 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 "Düzenleyici penceresi yeniden boyandığında döner."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "İçe aktarılmış kaynaklar kaydedilemez."
@@ -3212,10 +3242,6 @@ msgid "Save & Restart"
msgstr "Kaydet ve Baştan Başlat"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Düzenleyici penceresi yeniden boyandığında döner."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Sürekli Güncelle"
@@ -3878,6 +3904,16 @@ msgid "Download from:"
msgstr "İndirme Hatası"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Tarayıcıda Çalıştır"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Hatayı Kopyala"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8740,6 +8776,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Bütün Öğeleri Kaldır"
@@ -8770,6 +8812,12 @@ msgid "Remove All StyleBox Items"
msgstr "Bütün Öğeleri Kaldır"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Sınıf Öğeleri Ekle"
@@ -12426,6 +12474,16 @@ msgstr "Silindir Şekli Yüksekliğini Değiştir"
msgid "Change Ray Shape Length"
msgstr "Işın Şeklinin Uzunluğunu Değiştir"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Eğri Noktası Konumu Ayarla"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Eğri Noktası Konumu Ayarla"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Silindir Yarıçapını Değiştir"
@@ -14194,6 +14252,42 @@ msgstr ""
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 "Bir model ayarlanana kadar bu gövde yok sayılır."
@@ -15449,9 +15543,6 @@ msgstr "Sabit değerler değiştirilemez."
#~ msgid "I see..."
#~ msgstr "Anlıyorum..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "'%s' açılamıyor."
-
#~ msgid "Ugh"
#~ msgstr "Öff"
diff --git a/editor/translations/tt.po b/editor/translations/tt.po
index 4ff5555363..e7b37069b7 100644
--- a/editor/translations/tt.po
+++ b/editor/translations/tt.po
@@ -338,6 +338,7 @@ msgstr ""
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 ""
@@ -362,10 +363,25 @@ msgstr ""
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 ""
@@ -920,7 +936,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2211,6 +2227,17 @@ 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 ""
@@ -2990,10 +3017,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3598,6 +3621,14 @@ 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 ""
@@ -8275,6 +8306,12 @@ msgid ""
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 ""
@@ -8299,6 +8336,12 @@ 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 ""
@@ -11706,6 +11749,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13300,6 +13351,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po
index 7d41f508ee..8c7d3f272c 100644
--- a/editor/translations/tzm.po
+++ b/editor/translations/tzm.po
@@ -336,6 +336,7 @@ msgstr ""
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 ""
@@ -360,10 +361,25 @@ msgstr ""
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 ""
@@ -918,7 +934,7 @@ msgstr ""
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2209,6 +2225,17 @@ 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 ""
@@ -2988,10 +3015,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3596,6 +3619,14 @@ 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 ""
@@ -8273,6 +8304,12 @@ msgid ""
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 ""
@@ -8297,6 +8334,12 @@ 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 ""
@@ -11704,6 +11747,14 @@ msgstr ""
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 ""
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13298,6 +13349,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index adccdfd91f..a889e83e19 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Ukrainian (Godot Engine)\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-08-02 02:00+0000\n"
-"Last-Translator: IllusiveMan196 <hamsterrv@gmail.com>\n"
+"PO-Revision-Date: 2021-08-04 12:10+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
"Language: uk\n"
@@ -356,6 +356,7 @@ msgstr "Змінити режим циклу анімації"
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 "Створити нову доріжку для %s і вставити ключ?"
@@ -380,10 +381,28 @@ msgstr "Створити"
msgid "Anim Insert"
msgstr "Вставити анімацію"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "Неможливо відкрити '%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 "Анімація"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer не може анімувати себе, лише інших відтворювачів."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Властивості «%s» не існує."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Створити і вставити анімацію"
@@ -596,9 +615,8 @@ msgid "Go to Previous Step"
msgstr "До попереднього кроку"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "Скинути"
+msgstr "Застосувати скидання"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -617,9 +635,8 @@ msgid "Use Bezier Curves"
msgstr "Використовувати криві Безьє"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "Вставити доріжки"
+msgstr "Створити доріжки RESET"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -944,7 +961,6 @@ msgid "Edit..."
msgstr "Змінити…"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "Перейти до методу"
@@ -964,9 +980,9 @@ msgstr "Створити новий %s"
msgid "No results for \"%s\"."
msgstr "Нічого не знайдено для «%s»."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "Немає опису для %s."
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1066,17 +1082,16 @@ msgid "Owners Of:"
msgstr "Власники:"
#: editor/dependency_editor.cpp
-#, fuzzy
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 ""
"Вилучити позначені файли з проєкту? (без можливості скасувати)\n"
-"Вилучені файли можна буде знайти і відновити у теці смітника системи."
+"Залежно від конфігурації вашої файлової системи, вилучені файли буде або "
+"пересунуто до теки смітника, або вилучено остаточно."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1087,7 +1102,8 @@ msgstr ""
"Файли, які ви вилучаєте, потрібні для забезпечення працездатності інших "
"ресурсів.\n"
"Вилучити їх попри це? (без скасування)\n"
-"Вилучені файли можна знайти і відновити у теці смітника системи."
+"Залежно від конфігурації вашої файлової системи, вилучені файли буде або "
+"пересунуто до теки смітника, або вилучено остаточно."
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
@@ -1257,41 +1273,37 @@ msgid "Licenses"
msgstr "Ліцензії"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "Помилка під час спроби відкрити файл пакунка (дані не у форматі ZIP)."
+msgstr ""
+"Помилка під час спроби відкрити файл пакунка для «%s» (не у форматі ZIP)."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
msgstr "%s (вже існує)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "Вміст пакунка «%s» — конфлікт %d файлів із вашим проєктом:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "Вміст пакунка «%s» — немає конфліктів файлів із вашим проєктом:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "Розпаковування ресурсів"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "Не вдалося видобути такі файли з пакунка:"
+msgstr "Не вдалося видобути з пакунка «%s» такі файли:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "І ще %s файлів."
+msgstr "(і ще %s файлів)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "Пакунок успішно встановлено!"
+msgstr "Пакунок «%s» успішно встановлено!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1303,9 +1315,8 @@ msgid "Install"
msgstr "Встановити"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "Встановлювач пакета"
+msgstr "Встановлювач пакукнків"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1368,9 +1379,8 @@ msgid "Bypass"
msgstr "Обхід"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
-msgstr "Опції шини"
+msgstr "Параметри шини"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1536,13 +1546,12 @@ msgid "Can't add autoload:"
msgstr "Не вдалося додати автозавантаження:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "Файл не існує."
+msgstr "%s не є коректним шляхом. Файла не існує."
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s є некоректним шляхом. Його немає у шляху ресурсів (res://)."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1566,9 +1575,8 @@ msgid "Name"
msgstr "Назва"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "Змінна"
+msgstr "Загальна змінна"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1724,7 +1732,7 @@ msgstr "Редактор скриптів"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr "Бібліотека ресурсів"
+msgstr "Бібліотека пакунків"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
@@ -1744,48 +1752,55 @@ msgstr "Бічна панель імпортування"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+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 ""
+msgstr "Надає вбудований доступу до бібліотеки пакунків."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+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 ""
+"Надає змогу налаштувати параметри імпортування для окремих пакунків. "
+"Потребує для роботи бічної панелі FileSystem."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
-msgstr "(Поточний)"
+msgstr "(поточний)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(немає)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
msgstr ""
+"Вилучити поточний позначений профіль, «%s»? Дію не може бути скасовано."
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1816,19 +1831,16 @@ msgid "Enable Contextual Editor"
msgstr "Увімкнути контекстуальний редактор"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "Властивості:"
+msgstr "Властивості класу:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "Можливості"
+msgstr "Основні можливості:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "Увімкнені класи:"
+msgstr "Вузли і класи:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1847,23 +1859,20 @@ msgid "Error saving profile to path: '%s'."
msgstr "Помилка під час спроби зберегти профіль до каталогу: «%s»."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
-msgstr "Відновити типові параметри"
+msgstr "Повернутися до типового"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
msgstr "Поточний профіль:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "Витерти профіль"
+msgstr "Створити профіль"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "Вилучити плитку"
+msgstr "Вилучити профіль"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1883,18 +1892,18 @@ msgid "Export"
msgstr "Експортування"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "Поточний профіль:"
+msgstr "Налаштувати позначений профіль:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "Параметри класу:"
+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:"
@@ -1921,9 +1930,8 @@ msgid "Select Current Folder"
msgstr "Вибрати поточну теку"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
-msgstr "Файл існує, перезаписати його?"
+msgstr "Файл вже існує. Перезаписати?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
@@ -2316,6 +2324,17 @@ 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 "Неможливо зберегти імпортовані ресурси."
@@ -2545,13 +2564,16 @@ msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
msgstr ""
+"У поточної сцени немає кореневого вузла, але %d змінених зовнішніх ресурсів "
+"було збережено попри це."
#: 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..."
@@ -2937,9 +2959,8 @@ msgid "Orphan Resource Explorer..."
msgstr "Керування осиротілими ресурсами…"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "Перейменувати проєкт"
+msgstr "Перезавантажити поточний проєкт"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3100,13 +3121,12 @@ msgid "Help"
msgstr "Довідка"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "Відкрити документацію"
+msgstr "Документація в інтернеті"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "Запитання і відповіді"
#: editor/editor_node.cpp
msgid "Report a Bug"
@@ -3114,7 +3134,7 @@ msgstr "Повідомити про ваду"
#: editor/editor_node.cpp
msgid "Suggest a Feature"
-msgstr ""
+msgstr "Запропонувати можливість"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3125,9 +3145,8 @@ msgid "Community"
msgstr "Спільнота"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "Про"
+msgstr "Про Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3179,10 +3198,6 @@ msgid "Save & Restart"
msgstr "Зберегти і перезапустити"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Обертається, коли перемальовується вікно редактора."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Оновлювати неперервно"
@@ -3225,14 +3240,12 @@ msgid "Manage Templates"
msgstr "Керування шаблонами"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
-msgstr "Встановити з файлу"
+msgstr "Встановити з файла"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "Виберіть джерело сітки:"
+msgstr "Виберіть файл початкових кодів android"
#: editor/editor_node.cpp
msgid ""
@@ -3314,9 +3327,8 @@ msgid "Select"
msgstr "Виділити"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "Вибрати поточну теку"
+msgstr "Вибрати поточний"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3351,9 +3363,8 @@ msgid "No sub-resources found."
msgstr "Підлеглих ресурсів не знайдено."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Підлеглих ресурсів не знайдено."
+msgstr "Відкрити список підлеглих ресурсів."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3380,14 +3391,12 @@ msgid "Update"
msgstr "Оновити"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "Версія:"
+msgstr "Версія"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
-msgstr "Автори"
+msgstr "Автор"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/version_control_editor_plugin.cpp
@@ -3400,14 +3409,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 %"
@@ -3434,6 +3441,12 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"Включно: включає час з інших функцій, які викликає ця функція.\n"
+"Скористайтеся цим варіантом для виявлення вузьких місць.\n"
+"\n"
+"Цей об'єкт: визначати витрачений час у самій функції, не в інших функціях, "
+"які ця функція викликає.\n"
+"Скористайтеся цим варіантом для пошуку окремих функцій для оптимізації."
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3556,9 +3569,8 @@ msgid "Paste"
msgstr "Вставити"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
-msgstr "Перетворити на %s"
+msgstr "Перетворити до %s"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3608,10 +3620,9 @@ msgid "Did you forget the '_run' method?"
msgstr "Ви забули метод '_run'?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Утримуйте натиснутою Ctrl, щоб заокруглити до цілих. Утримуйте натиснутою "
+"Утримуйте натиснутою %s, щоб заокруглити до цілих. Утримуйте натиснутою "
"Shift, щоб зміни були точнішими."
#: editor/editor_sub_scene.cpp
@@ -3632,49 +3643,43 @@ msgstr "Імпортувати з вузла:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "Відкрити теку, яка містить ці шаблони."
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "Вилучити ці шаблони."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "Немає файла «%s»."
+msgstr "Немає доступних дзеркал."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Отримання дзеркал, будь ласка, зачекайте..."
+msgstr "Отримуємо список дзеркал…"
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "Розпочинаємо отримання даних…"
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "Помилка під час запиту за такою адресою:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "Підключення до дзеркала..."
+msgstr "Встановлюємо з'єднання із дзеркалом…"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "Неможливо розпізнати ім'я хоста:"
+msgstr "Не вдалося визначити вузол за бажаною адресою."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Не вдалося підключитися до хосту:"
+msgstr "Не вдалося встановити з'єднання із дзеркалом."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Немає відповіді від хоста:"
+msgstr "Немає відповіді від дзеркала."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3682,18 +3687,16 @@ msgid "Request failed."
msgstr "Не вдалося виконати запит."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "Запит не вдався, забагато перенаправлень"
+msgstr "Спроба виконати запит завершилася циклічним переспрямовуванням."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "Не вдалося виконати запит."
+msgstr "Не вдалося виконати запит:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "Отримання даних завершено; видобуваємо шаблони…"
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3712,15 +3715,14 @@ msgid "Error getting the list of mirrors."
msgstr "Помилка під час отримання списку дзеркал."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr ""
-"Помилка під час обробки JSON списку дзеркал. Будь ласка, повідомте про цю "
-"ваду!"
+"Помилка під час спроби обробити JSON зі списком дзеркал. Будь ласка, "
+"повідомте розробникам про цю помилку!"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "Найкраще доступне дзеркало"
#: editor/export_template_manager.cpp
msgid ""
@@ -3773,24 +3775,21 @@ msgid "SSL Handshake Error"
msgstr "Помилка SSL Рукостискання"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "Неможливо відкрити ZIP-файл шаблону експорту."
+msgstr "Не вдалося відкрити файл шаблонів експортування."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "Неправильний формат version.txt у шаблонах: %s."
+msgstr ""
+"Некоректне форматування version.txt у файлі шаблонів експортування: %s."
#: 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"
@@ -3801,9 +3800,8 @@ msgid "Importing:"
msgstr "Імпортування:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "Вилучити версію шаблону '%s'?"
+msgstr "Вилучити шаблони для версії «%s»?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3820,57 +3818,65 @@ 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 ""
+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."
-msgstr ""
+msgstr "Відкрити теку, що містить встановлені шаблони для поточної версії."
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "Видалити"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "Початкове значення для лічильника"
+msgstr "Вилучити шаблони для поточної версії."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Помилка завантаження"
+msgstr "Джерело отримання:"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Запустити в браузері"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Помилка копіювання"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+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
-#, fuzzy
msgid "Install from File"
-msgstr "Встановити з файлу"
+msgstr "Встановити з файла"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "Імпортувати шаблони з ZIP-файлу"
+msgstr "Встановити шаблони з локального файла."
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3878,19 +3884,16 @@ msgid "Cancel"
msgstr "Скасувати"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "Неможливо відкрити ZIP-файл шаблону експорту."
+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"
@@ -3905,6 +3908,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"Отримання шаблонів буде продовжено.\n"
+"Під час завершення можливе тимчасове «замерзання» редактора."
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -4052,35 +4057,32 @@ msgid "Collapse All"
msgstr "Згорнути все"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "Шукати файли"
+msgstr "Упорядкувати файли"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "Упорядкувати за назвою (зростання)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "Упорядкувати за назвою (спадання)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "Упорядкувати за типом (зростання)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "Упорядкувати за типом (спадання)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "Востаннє змінено"
+msgstr "Упорядкувати за останнім внесенням змін"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "Востаннє змінено"
+msgstr "Упорядкувати за початковим внесенням змін"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4092,7 +4094,7 @@ msgstr "Перейменувати..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "Фокусувати поле для пошуку"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4400,14 +4402,12 @@ 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"
@@ -4432,23 +4432,20 @@ 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 "Редагувати ресурс з буфера обміну"
#: 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."
@@ -4463,9 +4460,8 @@ msgid "History of recently edited objects."
msgstr "Історія нещодавно відредагованих об'єктів."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "Відкрити документацію"
+msgstr "Відкрити документацію для цього об'єкта."
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4476,9 +4472,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!"
@@ -4726,9 +4721,8 @@ msgid "Blend:"
msgstr "Змішувати:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Змінено параметр"
+msgstr "Змінено параметр:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5460,11 +5454,11 @@ msgstr "Все"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "Шукати шаблони, проєкти та демонстрації"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "Пошук пакунків (із виключенням шаблонів, проєктів та демонстрацій)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5508,7 +5502,7 @@ msgstr "ZIP файл ресурсів"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "Пуск/Пауза прослуховування звуку"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5769,13 +5763,12 @@ 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
@@ -5784,6 +5777,9 @@ msgid ""
"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
@@ -5851,31 +5847,27 @@ 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
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+Перетягнути: перемістити"
+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
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
msgstr ""
-"Показати список усіх об'єктів, натиснутих на позицію\n"
-"(так само, як Альт+ПКМ у режимі вибору)."
+"Alt+ПКМ: показати список усіх вузлів у позиції клацання, включно із "
+"заблокованими."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "ПКМ: додати вузол у позиції клацання."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6113,14 +6105,12 @@ 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
msgid "Instance Scene Here"
-msgstr "Сцени екземпляра"
+msgstr "Екземпляр сцени тут"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6136,49 +6126,43 @@ msgstr "Панорамування зображення"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "Масштаб у 3,125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "Масштаб у 6,25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "Масштаб у 12,5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "Зменшення"
+msgstr "Масштаб у 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "Зменшення"
+msgstr "Масштаб у 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "Зменшення"
+msgstr "Масштаб у 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "Зменшення"
+msgstr "Масштаб у 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "Зменшення"
+msgstr "Масштаб у 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "Зменшення"
+msgstr "Масштаб у 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "Масштаб у 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6424,9 +6408,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"
@@ -6461,9 +6444,8 @@ msgid "No mesh to debug."
msgstr "Немає сітки для налагодження."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "Модель не має UV на цьому шарі"
+msgstr "Сітка не має UV у шарі %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6528,9 +6510,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 ""
@@ -6538,20 +6519,23 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"Створює спрощену опуклу форму зіткнення.\n"
+"Це схоже на єдину форму зіткнення, але може призвести у деяких випадках до "
+"простішої геометрії ціною точності."
#: editor/plugins/mesh_instance_editor_plugin.cpp
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"
-"Цей проміжний за швидкістю варіант між наведеними вище двома варіантами."
+"Цей проміжний за швидкодією варіант між єдиною опуклою формою зіткнення і "
+"заснованою на багатокутниках формою зіткнення."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -7195,24 +7179,20 @@ 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/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7778,20 +7758,17 @@ msgid "None"
msgstr "Немає"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "Режим повороту"
+msgstr "Обертати"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "Перенесення:"
+msgstr "Пересунути"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "Масштаб:"
+msgstr "Масштаб"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7814,52 +7791,44 @@ msgid "Animation Key Inserted."
msgstr "Вставлено ключ анімації."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "Хилитання"
+msgstr "Тон:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "Рискання:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Розмір: "
+msgstr "Розмір:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "Намальовано об'єктів"
+msgstr "Намальовано об'єктів:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "Зміни матеріалу"
+msgstr "Зміни матеріалу:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "Зміни шейдерів"
+msgstr "Зміни шейдерів:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "Зміни поверхонь"
+msgstr "Зміни поверхонь:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Виклики засобу малювання"
+msgstr "Намалювати виклики:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "Вершини"
+msgstr "Вершини:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "Частота кадрів: %d (%s мс)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -8014,9 +7983,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"
@@ -8039,9 +8007,8 @@ msgstr ""
"грі."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Перетворити на %s"
+msgstr "Перетворити кімнати"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8062,7 +8029,6 @@ msgstr ""
"Напівзакрите око: Gizmo є також видимим крізь непрозорі поверхні («рентген»)."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "Приліпити вузли до підлоги"
@@ -8080,7 +8046,7 @@ msgstr "За допомогою функції прив'язки"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "Перетворює кімнати для відбраковування порталу."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8176,9 +8142,8 @@ msgid "View Grid"
msgstr "Перегляд ґратки"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "Параметри панелі перегляду"
+msgstr "Переглянути відбраковування Portal"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8500,221 +8465,196 @@ msgid "TextureRegion"
msgstr "TextureRegion"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Колір"
+msgstr "Кольори"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Шрифт"
+msgstr "Шрифти"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Піктограма"
+msgstr "Піктограми"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "Style Box"
+msgstr "Стильові панелі"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} кольорів"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Підлеглих ресурсів не знайдено."
+msgstr "Кольорів не знайдено."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "Константи"
+msgstr "{num} сталих"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Сталий колір."
+msgstr "Сталих не знайдено."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} шрифтів"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "Не знайдено!"
+msgstr "Шрифтів не знайдено."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} піктограм"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "Не знайдено!"
+msgstr "Піктограм не знайдено."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} панелей стилів"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "Підлеглих ресурсів не знайдено."
+msgstr "Панелей стилів не знайдено."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "{num} зараз позначених"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "Нічого не позначено для імпортування."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "Імпортувати тему"
+msgstr "Імпортування записів теми"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "Імпортування записів, {n} з {n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Вийти з редактора?"
+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"
-msgstr ""
+msgstr "З даними"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Виберіть вузол"
+msgstr "Вибір за типом даних:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Виберіть поділ для його витирання."
+msgstr "Вибрати усі видимі записи кольорів."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "Вибрати усі видимі записи кольорів та їхні дані."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "Скасувати вибір усіх видимих записів кольорів."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Спочатку виберіть елемент параметра!"
+msgstr "Вибрати усі видимі записи сталих."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "Вибрати усі записи усіх видимих сталих та їхні дані."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "Скасувати вибір усіх видимих записів сталих."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Спочатку виберіть елемент параметра!"
+msgstr "Вибрати усі видимі записи шрифтів."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "Вибрати усі видимі записи шрифтів та їхні дані."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "Скасувати вибір усіх видимих записів шрифтів."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Спочатку виберіть елемент параметра!"
+msgstr "Вибрати усі видимі записи піктограм."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Спочатку виберіть елемент параметра!"
+msgstr "Вибрати усі видимі записи піктограм та їхні дані."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Спочатку виберіть елемент параметра!"
+msgstr "Скасувати вибір усіх видимих записів піктограм."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "Вибрати усі видимі записи панелей стилів."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "Вибрати усі видимі записи панелей стилів та їхні дані."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+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
-#, fuzzy
msgid "Collapse types."
-msgstr "Згорнути все"
+msgstr "Згорнути типи."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Розгорнути все"
+msgstr "Розгорнути типи."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Виберіть файл шаблону"
+msgstr "Вибрати усі записи тем."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "Виберіть пункти"
+msgstr "Вибрати з даними"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "Вибрати усі записи тем із даними запису."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "Виділити все"
+msgstr "Зняти позначення з усіх"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "Скасувати вибір усіх записів тем."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Імпортувати сцену"
+msgstr "Імпортувати позначене"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8722,271 +8662,247 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"На панелі імпортування записів позначено деякі записи. Якщо закрити це "
+"вікно, позначення буде знято.\n"
+"Закрити вікно попри це?"
+
+#: 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
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "Вилучити усі елементи"
+msgstr "Вилучити усі записи кольорів"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Вилучити елемент"
+msgstr "Перейменувати запис"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "Вилучити усі елементи"
+msgstr "Вилучити усі записи сталих"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "Вилучити усі елементи"
+msgstr "Вилучити усі записи шрифтів"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "Вилучити усі елементи"
+msgstr "Вилучити усі записи піктограм"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "Вилучити усі елементи"
+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
-#, fuzzy
msgid "Add Color Item"
-msgstr "Додати елементи класу"
+msgstr "Додати запис кольору"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "Додати елементи класу"
+msgstr "Додати запис сталої"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "Додати елемент"
+msgstr "Додати запис шрифту"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "Додати елемент"
+msgstr "Додати запис піктограми"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "Додати усі елементи"
+msgstr "Додати запис панелі стилів"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "Вилучити елементи класу"
+msgstr "Перейменувати запис кольору"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "Вилучити елементи класу"
+msgstr "Перейменувати запис сталої"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "Перейменувати вузол"
+msgstr "Перейменувати запис шрифту"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "Перейменувати вузол"
+msgstr "Перейменувати запис піктограми"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "Вилучити вибраний елемент"
+msgstr "Перейменувати запис панелі стилів"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "Неприпустимий файл, це не компонування аудіо-шини."
+msgstr "Некоректний файл. Файл не є ресурсом теми."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "Некоректний файл. Файл збігається із редагованим ресурсом теми."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "Керування шаблонами"
+msgstr "Керування записами теми"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "Редагований елемент"
+msgstr "Редагувати записи"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
-msgstr "Тип:"
+msgstr "Типи:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "Тип:"
+msgstr "Додати тип:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "Додати елемент"
+msgstr "Додати запис:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "Додати усі елементи"
+msgstr "Додати запис панелі стилів"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "Вилучити елемент"
+msgstr "Вилучити записи:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr "Вилучити елементи класу"
+msgstr "Вилучити записи класу"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "Вилучити елементи класу"
+msgstr "Вилучити нетипові записи"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "Вилучити усі елементи"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "Тема елементів ГІК"
+msgstr "Додати запис теми"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Ім'я Вузла:"
+msgstr "Стара назва:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "Імпортувати тему"
+msgstr "Імпортовані пункти"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Типовий"
+msgstr "Типова тема"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Редагувати тему"
+msgstr "Тема редактора"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Вилучити ресурс"
+msgstr "Виберіть ресурс іншої теми:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "Імпортувати тему"
+msgstr "Інша тема"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "Перейменувати доріжку"
+msgstr "Підтвердити перейменування запису"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "Пакетне перейменування"
+msgstr "Скасувати перейменування запису"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Перевизначення"
+msgstr "Перевизначити запис"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+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
-#, fuzzy
msgid "Add Type"
-msgstr "Тип"
+msgstr "Додати тип"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "Додати елемент"
+msgstr "Додати тип запису"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "Тип вузлів"
+msgstr "Типи вузлів:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "Завантажити типовий"
+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
-#, fuzzy
msgid "Override All"
-msgstr "Перевизначення"
+msgstr "Перевизначити усе"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "Перевизначити усі записи стандартних типів."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "Тема"
+msgstr "Тема:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
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
msgid "Default Preview"
-msgstr "Оновити перегляд"
+msgstr "Типове зображення перегляду"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "Виберіть джерело сітки:"
+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"
@@ -9021,9 +8937,8 @@ msgid "Checked Radio Item"
msgstr "Позначений пункт варіанта"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Імен. розд."
+msgstr "Іменований роздільник"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -9076,19 +8991,21 @@ msgstr "Має,Багато,Параметрів"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
msgstr ""
+"Некоректний шлях. Ймовірно, ресурс PackedScene було пересунуто або вилучено."
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
msgstr ""
+"Некоректний ресурс PackedScene. Кореневим вузлом ресурсу має бути вузол "
+"Control."
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "Неприпустимий файл, це не компонування аудіо-шини."
+msgstr "Некоректний файл. Файл не є ресурсом PackedScene."
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "Перезавантажити сцену для відтворення її найактуальнішого стану."
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -10493,9 +10410,8 @@ msgid "VisualShader"
msgstr "VisualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "Змінити візуальну властивість"
+msgstr "Змінити візуальну властивість:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10621,9 +10537,8 @@ msgid "Script"
msgstr "Скрипт"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "Режим експортування скрипту:"
+msgstr "Режим експортування GDScript:"
#: editor/project_export.cpp
msgid "Text"
@@ -10631,21 +10546,20 @@ msgstr "Текст"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "Зібраний байткод (швидше завантаження)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "Зашифровано (ключ можна вказати нижче)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "Некоректний ключ шифрування (ключ має складатися із 64 символів)"
+msgstr ""
+"Некоректний ключ шифрування (ключ має складатися із 64 шістнадцяткових цифр)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "Ключ шифрування скрипту (256-бітове шістнадцяткове число):"
+msgstr "Ключ шифрування GDScript (256-бітове шістнадцяткове число):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10717,7 +10631,6 @@ msgid "Imported Project"
msgstr "Імпортований проєкт"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Некоректна назва проєкту."
@@ -10945,14 +10858,12 @@ 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 "Вибрати пристрій зі списку"
+msgstr "Вилучити зі списку %d проєктів?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Вибрати пристрій зі списку"
+msgstr "Вилучити цей проєкт зі списку?"
#: editor/project_manager.cpp
msgid ""
@@ -10985,9 +10896,8 @@ msgid "Project Manager"
msgstr "Керівник проєкту"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Проєкти"
+msgstr "Локальні проєкти"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -10998,23 +10908,20 @@ msgid "Last Modified"
msgstr "Востаннє змінено"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Експортувати проєкт"
+msgstr "Редагувати проєкт"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Перейменувати проєкт"
+msgstr "Запустити проєкт"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "Сканувати"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "Проєкти"
+msgstr "Сканувати проєкти"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -11025,14 +10932,12 @@ msgid "New Project"
msgstr "Новий проєкт"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Імпортований проєкт"
+msgstr "Імпортувати проєкт"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Перейменувати проєкт"
+msgstr "Вилучити проєкт"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11040,12 +10945,11 @@ msgstr "Вилучити пропущене"
#: editor/project_manager.cpp
msgid "About"
-msgstr "Про"
+msgstr "Відомості"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "Бібліотека ресурсів"
+msgstr "Проєкти бібліотеки пакунків"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -11057,7 +10961,7 @@ msgstr "Вилучити усі"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "Також вилучити вміст проєкту (без можливості скасування!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -11072,20 +10976,18 @@ msgstr ""
"Бажаєте переглянути офіційні приклади проєктів з бібліотеки ресурсів?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Фільтрувати властивості"
+msgstr "Фільтр проєктів"
#: editor/project_manager.cpp
-#, fuzzy
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 ""
-"Поле пошуку фільтрує проєкти за назвою і останнім компонентом шляху.\n"
+"Це поле фільтрує проєкти за назвою і останнім компонентом шляху.\n"
"Щоб виконати фільтрування проєктів за назвою і повним шляхом, у запиті має "
-"бути принаймні один символ `/`."
+"бути принаймні один символ «/»."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -11093,7 +10995,7 @@ msgstr "Клавіша "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "Фізична клавіша"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -11141,7 +11043,7 @@ msgstr "Пристрій"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (фізичний)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11284,23 +11186,21 @@ msgid "Override for Feature"
msgstr "Перевизначено для можливості"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Додати переклад"
+msgstr "Додати %d перекладів"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "Вилучити переклад"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "Переспрямування ресурсу додає переспрямування"
+msgstr "Повторна прив'язка ресурсів перекладу: додавання %d шляхів"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "Переспрямування ресурсу додає переспрямування"
+msgstr ""
+"Повторна прив'язка ресурсів перекладу: додавання %d повторних прив'язок"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11746,12 +11646,15 @@ msgstr "Вилучити вузол «%s»?"
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 ""
+"Щоб можна було зберегти гілку як сцену, має бути позначено лише один вузол, "
+"а у вас позначено %d."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11760,6 +11663,11 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"Не вдалося зберегти гілку кореневого вузла як екземпляр сцени.\n"
+"Щоб створити редаговану копію поточної сцени, здублюйте її за допомогою "
+"контекстного меню бічної панелі файлової системи\n"
+"або створіть успадковану сцену за допомогою пункту меню «Сцена > Створити "
+"успадковану сцену...»."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11767,6 +11675,10 @@ msgid ""
"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 ""
+"Не вдалося зберегти гілку вже створеного екземпляра сцени.\n"
+"Щоб створити варіацію сцени, ви можете створити успадковану сцену на основі "
+"екземпляра сцени за допомогою пункту меню «Сцена > Створити успадковану "
+"сцену...»."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -12174,6 +12086,8 @@ 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:"
@@ -12245,7 +12159,7 @@ msgstr "Помилка копіювання"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "Відкрити початковий код C++ на GitHub"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12423,6 +12337,16 @@ msgstr "Змінити висоту форми циліндра"
msgid "Change Ray Shape Length"
msgstr "Змінити довжину форми променя"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Задати положення точки кривої"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Задати положення точки кривої"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Змінити радіус циліндра"
@@ -12534,14 +12458,12 @@ msgid "Object can't provide a length."
msgstr "Об'єкт не може надавати довжину."
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "Експортувати бібліотеку сіті"
+msgstr "Експортувати GLTF2 сітки"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Експортувати…"
+msgstr "Експортувати GLTF…"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12584,9 +12506,8 @@ msgid "GridMap Paint"
msgstr "Малюнок GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "Вибір заповнення GridMap"
+msgstr "Вибір GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12838,14 +12759,12 @@ msgid "Add Output Port"
msgstr "Додати вихідний порт"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "Змінити тип"
+msgstr "Змірити тип порту"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "Змінити назву вхідного порту"
+msgstr "Змінити назву порту"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -12960,9 +12879,8 @@ msgid "Add Preload Node"
msgstr "Додати попередньо завантажений вузол"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
-msgstr "Додати вузол"
+msgstr "Додати вузли"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -13227,37 +13145,31 @@ msgstr "Вибрати пристрій зі списку"
#: platform/android/export/export.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "Запущено на %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting APK..."
-msgstr "Експортування усього"
+msgstr "Експортування APK…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Uninstalling..."
-msgstr "Видалити"
+msgstr "Вилучення…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Installing to device, please wait..."
-msgstr "Завантаження. Будь ласка, зачекайте..."
+msgstr "Встановлення на пристрій. Будь ласка, зачекайте..."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not install to device: %s"
-msgstr "Не вдалося запустити підпроцес!"
+msgstr "Не вдалося встановити на пристрій: %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Running on device..."
-msgstr "Запуск користувацького скрипту..."
+msgstr "Запуск на пристрої…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not execute on device."
-msgstr "Неможливо створити теку."
+msgstr "Не вдалося виконати на пристрої."
#: platform/android/export/export.cpp
msgid "Unable to find the 'apksigner' tool."
@@ -13388,40 +13300,38 @@ msgid ""
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"Не вдалося знайти «apksigner».\n"
+"Будь ласка, перевірте, чи є програма доступною у каталозі build-tools набору "
+"засобів для розробки Android.\n"
+"Отриманий у результаті %s не підписано."
#: platform/android/export/export.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "Підписування діагностики %s…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Signing release %s..."
-msgstr ""
-"Сканування файлів,\n"
-"будь ласка, зачекайте..."
+msgstr "Підписування випуску %s…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not find keystore, unable to export."
-msgstr "Не вдалося відкрити шаблон для експорту:"
+msgstr "Не вдалося знайти сховище ключів. Неможливо виконати експортування."
#: platform/android/export/export.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "«apksigner» повернуто повідомлення про помилку із номером %d"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Verifying %s..."
-msgstr "Додавання %s..."
+msgstr "Перевіряємо %s…"
#: platform/android/export/export.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "%s не пройдено перевірку за допомогою «apksigner»."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting for Android"
-msgstr "Експортування усього"
+msgstr "Експорт на Android"
#: platform/android/export/export.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
@@ -13440,7 +13350,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "Непідтримуваний формат експортування!\n"
#: platform/android/export/export.cpp
msgid ""
@@ -13468,16 +13378,15 @@ msgstr ""
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
msgstr ""
+"Не вдалося перезаписати файли res://android/build/res/*.xml із назвою проєкту"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr "Не вдалося отримати project.godot у каталозі проекту."
+msgstr "Не вдалося експортувати файли проєкту до проєкту gradle\n"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not write expansion package file!"
-msgstr "Не вдалося записати файл:"
+msgstr "Не вдалося записати файл пакунка розширення!"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -13506,21 +13415,20 @@ msgstr ""
"дані можна знайти у каталозі проєкту gradle."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Package not found: %s"
-msgstr "Не знайдено анімації: «%s»"
+msgstr "Пакунок не знайдено: %s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Creating APK..."
-msgstr "Створення контурів..."
+msgstr "Створення APK…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "Не вдалося відкрити шаблон для експорту:"
+msgstr ""
+"Не вдалося знайти шаблон APK для експортування:\n"
+"%s"
#: platform/android/export/export.cpp
msgid ""
@@ -13529,16 +13437,17 @@ msgid ""
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"Не вистачає бібліотек у шаблоні експортування для вибраних архітектур: %s.\n"
+"Будь ласка, створіть шаблон з усіма необхідними бібліотеками або зніміть "
+"позначку з архітектур із пропущеними бібліотеками у стилі експортування."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Adding files..."
-msgstr "Додавання %s..."
+msgstr "Додавання файлів…"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files"
-msgstr "Не вдалося записати файл:"
+msgstr "Не вдалося експортувати файли проєкту"
#: platform/android/export/export.cpp
msgid "Aligning APK..."
@@ -13546,7 +13455,7 @@ msgstr "Вирівнюємо APK..."
#: platform/android/export/export.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "Не вдалося розпакувати тимчасовий невирівняний APK."
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13594,45 +13503,40 @@ msgid "Could not write file:"
msgstr "Не вдалося записати файл:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Не вдалося записати файл:"
+msgstr "Не вдалося прочитати файл:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "Не вдалося прочитати спеціальну оболонку HTML:"
+msgstr "Не вдалося прочитати оболонку HTML:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "Неможливо створити теку."
+msgstr "Не вдалося створити каталог на сервері HTTP:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "Помилка збереження сцени."
+msgstr "Помилка під час спроби запуску сервера HTTP:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "Некоректний ідентифікатор:"
+msgstr "Некоректний ідентифікатор пакунка:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "Засвідчення: потрібен код підписування."
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "Засвідчення: потрібне стійке середовище запуску."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "Засвідчення: не вказано назву ідентифікатора Apple."
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "Засвідчення: не вказано пароль до ідентифікатора Apple."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -14074,6 +13978,9 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"Властивість GIProbe Compress було визначено застарілою через відомі помилки. "
+"Вона більше ні на що не впливає.\n"
+"Щоб усунути це попередження, вимкніть властивість Compress у GIProbe."
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14163,14 +14070,20 @@ msgstr "Вузол A і вузол B має бути різними PhysicsBody"
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
msgstr ""
+"RoomManager не повинен бути дочірнім об'єктом першого або другого рівня для "
+"Portal."
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
msgstr ""
+"Запис Room не повинен бути дочірнім об'єктом першого або другого рівня для "
+"Portal."
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
msgstr ""
+"Запис RoomGroup не повинен бути дочірнім об'єктом першого або другого рівня "
+"для Portal."
#: scene/3d/remote_transform.cpp
msgid ""
@@ -14183,41 +14096,83 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
msgstr ""
+"Запис Room не може містити дочірнього об'єкта Room першого або другого рівня "
+"вкладеності."
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "RoomManager не можна розташовувати у Room."
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "RoomGroup не можна розташовувати у Room."
#: 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 ""
+"Опукла оболонка кімнати містить велику кількість площин.\n"
+"Вам варто спростити межу кімнати, щоб підвищити швидкодію."
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "RoomManager не можна розташовувати у RoomGroup."
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "RoomList не надано значення."
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
-msgstr ""
+msgstr "Вузол RoomList не може бути Spatial (або походити від Spatial)."
#: 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 ""
+"Для «Обмеження глибини порталу» встановлено нульове значення.\n"
+"Буде оброблено лише Room, у якій перебуває Camera."
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
+msgstr "У SceneTree має бути лише один запис RoomManager."
+
+#: 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
@@ -14283,7 +14238,7 @@ msgstr "Не знайдено анімації: «%s»"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "Скинути застосування анімації"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14461,25 +14416,30 @@ msgid "Invalid comparison function for that type."
msgstr "Некоректна функція порівняння для цього типу."
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "Змінні величини можна пов'язувати лише із функцією вузлів."
+msgstr "У функції «%s» не може бути надано змінне значення."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
msgstr ""
+"Змінним, яким надано значення у функції «vertex», не можна повторно надавати "
+"значення у «fragment» або «light»."
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
msgstr ""
+"Змінним, яким надано значення у функції «fragment», не можна повторно "
+"надавати значення у «vertex» або «light»."
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
msgstr ""
+"Доступ до змінного значення на кроці фрагментації у нетиповій функції "
+"неможливий!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -15669,9 +15629,6 @@ msgstr "Сталі не можна змінювати."
#~ msgid "I see..."
#~ msgstr "Бачу..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "Неможливо відкрити '%s'."
-
#~ msgid "Ugh"
#~ msgstr "Тьху"
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 5c5a6baa8e..fb70bc5703 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -345,6 +345,7 @@ msgstr ""
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 ""
@@ -369,10 +370,26 @@ msgstr ""
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
+#, fuzzy
+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 ""
@@ -939,7 +956,7 @@ msgstr "سب سکریپشن بنائیں"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2261,6 +2278,17 @@ 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 ""
@@ -3048,10 +3076,6 @@ msgid "Save & Restart"
msgstr ""
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr ""
@@ -3669,6 +3693,15 @@ msgid "Download from:"
msgstr ".تمام کا انتخاب"
#: editor/export_template_manager.cpp
+#, fuzzy
+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 ""
@@ -8486,6 +8519,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr ".تمام کا انتخاب"
@@ -8516,6 +8555,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "پسندیدہ اوپر منتقل کریں"
@@ -12045,6 +12090,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr ".تمام کا انتخاب"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr ".تمام کا انتخاب"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -13682,6 +13737,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index 531488e640..d50d622215 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -355,6 +355,7 @@ msgstr "Đổi chế độ vòng lặp hoạt ảnh"
msgid "Remove Anim Track"
msgstr "Xóa Anim Track"
+#. 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 "Tạo track mới cho %s và chèn key?"
@@ -379,10 +380,27 @@ msgstr "Tạo"
msgid "Anim Insert"
msgstr "Chèn 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 ""
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "animation"
+msgstr "Hoạt ảnh"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer không thể tự tạo hoạt ảnh, phải nhờ các Player khác."
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "Thuộc tính '%s' không tồn tại."
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "Tạo & Chèn Hoạt ảnh"
@@ -954,7 +972,7 @@ msgstr "Tạo %s mới"
msgid "No results for \"%s\"."
msgstr "Không tìm thấy kết quả cho \"%s\"."
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2299,6 +2317,17 @@ msgid "New Window"
msgstr "Cửa sổ mới"
#: 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 "Xoay khi cửa sổ trình chỉnh sửa được vẽ lại."
+
+#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
msgstr "Tài nguyên đã nhập không thể lưu."
@@ -3141,10 +3170,6 @@ msgid "Save & Restart"
msgstr "Lưu & Khởi động lại"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "Xoay khi cửa sổ trình chỉnh sửa được vẽ lại."
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "Cập nhật Liên tục"
@@ -3796,6 +3821,16 @@ msgid "Download from:"
msgstr "Lỗi tải"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "Chạy trong Trình duyệt web"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "Sao chép lỗi"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8623,6 +8658,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "Xóa tất cả các mục"
@@ -8653,6 +8694,12 @@ msgid "Remove All StyleBox Items"
msgstr "Xóa tất cả các mục"
#: 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
#, fuzzy
msgid "Add Color Item"
msgstr "Thêm mục Lớp"
@@ -12282,6 +12329,16 @@ msgstr "Chỉnh chiều cao hình trụ"
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "Đặt vị trí điểm uốn"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "Đặt vị trí điểm uốn"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "Thay Đổi Bán Kính Hình Trụ"
@@ -14000,6 +14057,42 @@ msgstr ""
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 ""
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index dbbd935854..8284ac605e 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -83,7 +83,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2021-08-01 12:02+0000\n"
+"PO-Revision-Date: 2021-08-12 14:48+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"
@@ -413,6 +413,7 @@ msgstr "更改动画循环模式"
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 "是否为 %s 新建轨道并插入关键帧?"
@@ -437,10 +438,28 @@ msgstr "创建"
msgid "Anim Insert"
msgstr "插入动画"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "无法打开 \"%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 "动画"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer 不能动画化自己,只可动画化其它 Player。"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "不存在属性“%s”。"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "创建并插入动画"
@@ -644,9 +663,8 @@ msgid "Go to Previous Step"
msgstr "返回上一步"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Apply Reset"
-msgstr "重置"
+msgstr "应用重置"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -665,9 +683,8 @@ msgid "Use Bezier Curves"
msgstr "使用贝塞尔曲线"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Create RESET Track(s)"
-msgstr "粘贴轨道"
+msgstr "创建 RESET 轨道"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -988,7 +1005,6 @@ msgid "Edit..."
msgstr "编辑..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go to Method"
msgstr "跳转到方法"
@@ -1008,9 +1024,9 @@ msgstr "创建 %s"
msgid "No results for \"%s\"."
msgstr "未找到 “%s”。"
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
-msgstr ""
+msgstr "没有针对 %s 的描述。"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -1110,17 +1126,15 @@ msgid "Owners Of:"
msgstr "拥有者:"
#: editor/dependency_editor.cpp
-#, fuzzy
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 ""
-"是否从项目中删除所选文件?(无法撤销)\n"
-"你可以在系统回收站中恢复被删除的文件。"
+"是否从项目中删除所选文件?(无法撤销。)\n"
+"根据你的文件系统设置,文件会被移动至系统回收站或永久删除。"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"The files being removed are required by other resources in order for them to "
"work.\n"
@@ -1128,9 +1142,9 @@ 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:"
@@ -1298,41 +1312,36 @@ msgid "Licenses"
msgstr "许可证"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Error opening asset file for \"%s\" (not in ZIP format)."
-msgstr "打开包文件时出错(非 ZIP 格式)。"
+msgstr "打开“%s”的素材文件时出错(非 ZIP 格式)。"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (already exists)"
msgstr "%s(已存在)"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:"
-msgstr ""
+msgstr "素材“%s”的内容 - %d 个文件与你的项目冲突:"
#: editor/editor_asset_installer.cpp
msgid "Contents of asset \"%s\" - No files conflict with your project:"
-msgstr ""
+msgstr "素材“%s”的内容 - 没有文件与你的项目冲突:"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
msgstr "正在解压素材"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "The following files failed extraction from asset \"%s\":"
-msgstr "以下文件无法从包中提取:"
+msgstr "以下文件无法从素材“%s”中提取:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "(and %s more files)"
-msgstr "以及其它 %s 个文件。"
+msgstr "(以及其它 %s 个文件)"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset \"%s\" installed successfully!"
-msgstr "软件包安装成功!"
+msgstr "素材“%s”安装成功!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1344,9 +1353,8 @@ msgid "Install"
msgstr "安装"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Asset Installer"
-msgstr "程序包安装程序"
+msgstr "素材安装器"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -1409,7 +1417,6 @@ msgid "Bypass"
msgstr "旁通"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus Options"
msgstr "总线选项"
@@ -1577,13 +1584,12 @@ msgid "Can't add autoload:"
msgstr "无法加载 Autoload:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "%s is an invalid path. File does not exist."
-msgstr "文件不存在。"
+msgstr "%s 是无效路径。文件不存在。"
#: editor/editor_autoload_settings.cpp
msgid "%s is an invalid path. Not in resource path (res://)."
-msgstr ""
+msgstr "%s 是无效路径。不是资源路径(res://)。"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1607,9 +1613,8 @@ msgid "Name"
msgstr "名称"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Global Variable"
-msgstr "变量"
+msgstr "全局变量"
#: editor/editor_data.cpp
msgid "Paste Params"
@@ -1775,48 +1780,47 @@ msgstr "导入面板"
#: editor/editor_feature_profile.cpp
msgid "Allows to view and edit 3D scenes."
-msgstr ""
+msgstr "允许查看并编辑 3D 场景。"
#: editor/editor_feature_profile.cpp
msgid "Allows to edit scripts using the integrated script editor."
-msgstr ""
+msgstr "允许使用内置脚本编辑器编辑脚本。"
#: editor/editor_feature_profile.cpp
msgid "Provides built-in access to the Asset Library."
-msgstr ""
+msgstr "提供对素材库的内置访问。"
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "允许在场景面板中编辑节点层级。"
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to work with signals and groups of the node selected in the Scene "
"dock."
-msgstr ""
+msgstr "允许在场景面板操作所选节点的信号和分组。"
#: editor/editor_feature_profile.cpp
msgid "Allows to browse the local file system via a dedicated dock."
-msgstr ""
+msgstr "允许使用专门的面板浏览本地文件系统。"
#: editor/editor_feature_profile.cpp
msgid ""
"Allows to configure import settings for individual assets. Requires the "
"FileSystem dock to function."
-msgstr ""
+msgstr "允许为各个素材配置导入设置。文件系统面板需要可用。"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(current)"
msgstr "(当前)"
#: editor/editor_feature_profile.cpp
msgid "(none)"
-msgstr ""
+msgstr "(无)"
#: editor/editor_feature_profile.cpp
msgid "Remove currently selected profile, '%s'? Cannot be undone."
-msgstr ""
+msgstr "要删除当前所选的配置文件“%s”吗?无法撤销。"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
@@ -1847,19 +1851,16 @@ msgid "Enable Contextual Editor"
msgstr "启用上下文编辑器"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Properties:"
-msgstr "属性:"
+msgstr "类属性:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Main Features:"
-msgstr "特性"
+msgstr "主要特性:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Nodes and Classes:"
-msgstr "启用的类:"
+msgstr "节点和类:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1876,7 +1877,6 @@ msgid "Error saving profile to path: '%s'."
msgstr "将配置文件保存到路径 “%s” 时出错。"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Reset to Default"
msgstr "重置为默认值"
@@ -1885,14 +1885,12 @@ msgid "Current Profile:"
msgstr "当前配置文件:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Create Profile"
-msgstr "删除配置文件"
+msgstr "创建配置文件"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Remove Profile"
-msgstr "移除图块"
+msgstr "删除配置文件"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
@@ -1912,18 +1910,16 @@ msgid "Export"
msgstr "导出"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Configure Selected Profile:"
-msgstr "当前配置文件:"
+msgstr "配置所选配置文件:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Extra Options:"
-msgstr "纹理选项"
+msgstr "更多选项:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
-msgstr ""
+msgstr "创建或导入配置文件以编辑可用的类和属性。"
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
@@ -1950,7 +1946,6 @@ msgid "Select Current Folder"
msgstr "选择当前文件夹"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "File exists, overwrite?"
msgstr "文件已存在,是否覆盖?"
@@ -2343,6 +2338,17 @@ 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 "导入的资源无法保存。"
@@ -2503,9 +2509,9 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"场景已被导入,所做的更改将不会保留。\n"
-"请实例化或继承该场景以允许对其进行更改。\n"
-"请阅读与导入场景相关的文档,以更佳理解此工作流。"
+"该场景是被导入的场景,不会保留对它的更改。\n"
+"实例化或继承该场景就可以对其进行更改。\n"
+"请阅读与导入场景相关的文档,以便更好地理解此工作流。"
#: editor/editor_node.cpp
msgid ""
@@ -2560,14 +2566,13 @@ msgstr "是否在关闭前保存对 “%s” 的更改?"
msgid ""
"The current scene has no root node, but %d modified external resource(s) "
"were saved anyway."
-msgstr ""
+msgstr "当前场景没有根节点,不过保存了 %d 个已修改的外部资源。"
#: 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..."
@@ -2938,9 +2943,8 @@ msgid "Orphan Resource Explorer..."
msgstr "孤立资源浏览器..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Current Project"
-msgstr "重命名项目"
+msgstr "重新加载当前项目"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -3088,22 +3092,20 @@ msgid "Help"
msgstr "帮助"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Online Documentation"
-msgstr "打开文档"
+msgstr "在线文档"
#: editor/editor_node.cpp
msgid "Questions & Answers"
-msgstr ""
+msgstr "问与答"
#: editor/editor_node.cpp
msgid "Report a Bug"
msgstr "报告问题"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Suggest a Feature"
-msgstr "设置值"
+msgstr "提交新特性建议"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3114,9 +3116,8 @@ msgid "Community"
msgstr "社区"
#: editor/editor_node.cpp
-#, fuzzy
msgid "About Godot"
-msgstr "关于"
+msgstr "关于 Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
@@ -3168,10 +3169,6 @@ msgid "Save & Restart"
msgstr "保存并重启"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "编辑器窗口重绘时旋转。"
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "持续更新"
@@ -3212,14 +3209,12 @@ msgid "Manage Templates"
msgstr "管理模板"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Install from file"
msgstr "从文件安装"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select android sources file"
-msgstr "选择源网格:"
+msgstr "选择 Android 源文件"
#: editor/editor_node.cpp
msgid ""
@@ -3299,9 +3294,8 @@ msgid "Select"
msgstr "选择"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Select Current"
-msgstr "选择当前文件夹"
+msgstr "选择当前"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -3336,9 +3330,8 @@ msgid "No sub-resources found."
msgstr "找不到子资源。"
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "找不到子资源。"
+msgstr "打开子资源列表。"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3365,12 +3358,10 @@ msgid "Update"
msgstr "更新"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Version"
-msgstr "版本:"
+msgstr "版本"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author"
msgstr "作者"
@@ -3385,14 +3376,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 %"
@@ -3419,6 +3408,11 @@ msgid ""
"functions called by that function.\n"
"Use this to find individual functions to optimize."
msgstr ""
+"全部:包括该函数调用的其它函数的时间。\n"
+"使用该选项寻找瓶颈。\n"
+"\n"
+"仅自己:只计算消耗在该函数本身的时间,不包含该函数所调用的其它函数。\n"
+"使用该选项寻找需要优化的函数。"
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3536,7 +3530,6 @@ msgid "Paste"
msgstr "粘贴"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "转换为 %s"
@@ -3586,9 +3579,8 @@ msgid "Did you forget the '_run' method?"
msgstr "是否遗漏了 _run() 方法?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
-msgstr "按住 Ctrl 键来取整。 按住 Shift 键获取更精确的变化。"
+msgstr "按住 %s 取整。 按住 Shift 获取更精确的变化。"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -3608,49 +3600,43 @@ msgstr "从节点中导入:"
#: editor/export_template_manager.cpp
msgid "Open the folder containing these templates."
-msgstr ""
+msgstr "打开包含这些模板的文件夹。"
#: editor/export_template_manager.cpp
msgid "Uninstall these templates."
-msgstr ""
+msgstr "卸载这些模板。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "文件 “%s” 不存在。"
+msgstr "没有可用的镜像。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "检索镜像,请等待..."
+msgstr "正在获取镜像列表……"
#: editor/export_template_manager.cpp
msgid "Starting the download..."
-msgstr ""
+msgstr "正在开始下载……"
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
msgstr "请求 URL 时出错:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "正在连接镜像网站..."
+msgstr "正在连接镜像……"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't resolve the requested address."
-msgstr "无法解析主机名:"
+msgstr "无法解析请求地址。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "无法连接到主机:"
+msgstr "无法连接到镜像。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "主机无响应:"
+msgstr "镜像无响应。"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3658,18 +3644,16 @@ msgid "Request failed."
msgstr "请求失败。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request ended up in a redirect loop."
-msgstr "请求失败,重定向次数过多"
+msgstr "请求进入了重定向循环。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Request failed:"
-msgstr "请求失败。"
+msgstr "请求失败:"
#: editor/export_template_manager.cpp
msgid "Download complete; extracting templates..."
-msgstr ""
+msgstr "下载完成;正在解压模板……"
#: editor/export_template_manager.cpp
msgid "Cannot remove temporary file:"
@@ -3688,13 +3672,12 @@ msgid "Error getting the list of mirrors."
msgstr "获取镜像列表时出错。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error parsing JSON with the list of mirrors. Please report this issue!"
msgstr "解析镜像列表 JSON 时出错。请提交此问题!"
#: editor/export_template_manager.cpp
msgid "Best available mirror"
-msgstr ""
+msgstr "最佳可用镜像"
#: editor/export_template_manager.cpp
msgid ""
@@ -3745,24 +3728,20 @@ msgid "SSL Handshake Error"
msgstr "SSL 握手错误"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't open the export templates file."
-msgstr "无法打开 ZIP 导出模板。"
+msgstr "无法打开导出模板文件。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside the export templates file: %s."
-msgstr "模板中的 version.txt 格式无效:%s。"
+msgstr "导出模板中的 version.txt 格式无效:%s。"
#: 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"
@@ -3773,9 +3752,8 @@ msgid "Importing:"
msgstr "正在导入:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove templates for the version '%s'?"
-msgstr "是否移除模板版本 “%s”?"
+msgstr "是否移除模板版本“%s”?"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3791,58 +3769,63 @@ msgstr "当前版本:"
#: editor/export_template_manager.cpp
msgid "Export templates are missing. Download them or install from a file."
-msgstr ""
+msgstr "缺失导出模板。请下载或从文件安装。"
#: editor/export_template_manager.cpp
msgid "Export templates are installed and ready to be used."
-msgstr ""
+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."
-msgstr ""
+msgstr "打开包含当前版本已安装模板的文件夹。"
#: editor/export_template_manager.cpp
msgid "Uninstall"
msgstr "卸载"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall templates for the current version."
-msgstr "计数器初始值"
+msgstr "卸载当前版本的模板。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "下载错误"
+msgstr "下载:"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "在浏览器中运行"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "复制错误信息"
#: editor/export_template_manager.cpp
msgid "Download and Install"
-msgstr ""
+msgstr "下载并安装"
#: editor/export_template_manager.cpp
msgid ""
"Download and install templates for the current version from the best "
"possible mirror."
-msgstr ""
+msgstr "从最佳的镜像下载当前版本的模板并安装。"
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
msgstr "开发构建下官方导出模板不可用。"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install from File"
msgstr "从文件安装"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install templates from a local file."
-msgstr "从 ZIP 文件中导入模板"
+msgstr "从本地文件安装模板。"
#: editor/export_template_manager.cpp editor/find_in_files.cpp
#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
@@ -3850,19 +3833,16 @@ msgid "Cancel"
msgstr "取消"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cancel the download of the templates."
-msgstr "无法打开 ZIP 导出模板。"
+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"
@@ -3877,6 +3857,8 @@ msgid ""
"The templates will continue to download.\n"
"You may experience a short editor freeze when they finish."
msgstr ""
+"模板下载仍会继续。\n"
+"完成时你可能会感受到编辑器的短暂冻结。"
#: editor/filesystem_dock.cpp
msgid "Favorites"
@@ -3972,7 +3954,7 @@ msgstr "打开场景"
#: editor/filesystem_dock.cpp
msgid "Instance"
-msgstr "实例"
+msgstr "实例化"
#: editor/filesystem_dock.cpp
msgid "Add to Favorites"
@@ -4019,35 +4001,32 @@ msgid "Collapse All"
msgstr "全部折叠"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort files"
-msgstr "搜索文件"
+msgstr "文件排序"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr ""
+msgstr "按名称(升序)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr ""
+msgstr "按名称(降序)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr ""
+msgstr "按类型(升序)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr ""
+msgstr "按类型(降序)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by Last Modified"
-msgstr "修改时间"
+msgstr "按最近修改"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Sort by First Modified"
-msgstr "修改时间"
+msgstr "按最早修改"
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
@@ -4059,7 +4038,7 @@ msgstr "重命名为..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr ""
+msgstr "聚焦搜索框"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4363,14 +4342,12 @@ 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"
@@ -4395,23 +4372,20 @@ 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 "编辑剪贴板中的资源"
#: 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."
@@ -4426,9 +4400,8 @@ msgid "History of recently edited objects."
msgstr "最近编辑历史对象。"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Open documentation for this object."
-msgstr "打开文档"
+msgstr "打开该对象的文档。"
#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -4439,9 +4412,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!"
@@ -4684,9 +4656,8 @@ msgid "Blend:"
msgstr "混合:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "参数已更改"
+msgstr "修改参数:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5408,11 +5379,11 @@ msgstr "全部"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search templates, projects, and demos"
-msgstr ""
+msgstr "搜索模板、项目、演示"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Search assets (excluding templates, projects, and demos)"
-msgstr ""
+msgstr "搜索素材(不包含模板、项目、演示)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5456,7 +5427,7 @@ msgstr "素材 ZIP 文件"
#: editor/plugins/audio_stream_editor_plugin.cpp
msgid "Audio Preview Play/Pause"
-msgstr ""
+msgstr "音频预览播放/暂停"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5705,13 +5676,12 @@ 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
@@ -5720,6 +5690,8 @@ msgid ""
"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
@@ -5785,31 +5757,25 @@ 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
-#, fuzzy
msgid "Alt+Drag: Move selected node."
-msgstr "Alt+拖动:移动"
+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
-#, fuzzy
msgid "Alt+RMB: Show list of all nodes at position clicked, including locked."
-msgstr ""
-"显示鼠标点击位置的所有节点\n"
-"(同 Alt + 鼠标右键)。"
+msgstr "Alt+右键:显示点击位置的所有节点列表,包含已锁定节点。"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "RMB: Add node at position clicked."
-msgstr ""
+msgstr "右键:在点击位置添加节点。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -6045,14 +6011,12 @@ 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
msgid "Instance Scene Here"
-msgstr "实例化场景"
+msgstr "在此处实例化场景"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6068,49 +6032,43 @@ msgstr "平移视图"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 3.125%"
-msgstr ""
+msgstr "缩放至 3.125%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 6.25%"
-msgstr ""
+msgstr "缩放至 6.25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 12.5%"
-msgstr ""
+msgstr "缩放至 12.5%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 25%"
-msgstr "缩小"
+msgstr "缩放至 25%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 50%"
-msgstr "缩小"
+msgstr "缩放至 50%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 100%"
-msgstr "缩小"
+msgstr "缩放至 100%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 200%"
-msgstr "缩小"
+msgstr "缩放至 200%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 400%"
-msgstr "缩小"
+msgstr "缩放至 400%"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Zoom to 800%"
-msgstr "缩小"
+msgstr "缩放至 800%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom to 1600%"
-msgstr ""
+msgstr "缩放至 1600%"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6355,9 +6313,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"
@@ -6392,9 +6349,8 @@ msgid "No mesh to debug."
msgstr "没有可调试的网格。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "模型在此层上没有 UV"
+msgstr "网格在层 %d 上没有 UV。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -6458,9 +6414,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 ""
@@ -6468,20 +6423,21 @@ msgid ""
"This is similar to single collision shape, but can result in a simpler "
"geometry in some cases, at the cost of accuracy."
msgstr ""
+"创建简化凸碰撞同级。\n"
+"与单一碰撞形状类似,但某些情况下产生的形状更简单,代价是牺牲准确性。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
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"
-"这是性能位于上述两种之间的碰撞检测手段。"
+"性能位于单一凸形碰撞和多边形碰撞之间。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh..."
@@ -7117,24 +7073,20 @@ 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/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
@@ -7692,20 +7644,17 @@ msgid "None"
msgstr "无"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rotate"
-msgstr "州(State)"
+msgstr "旋转"
#. TRANSLATORS: This refers to the movement that changes the position of an object.
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate"
-msgstr "移动:"
+msgstr "平移"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale"
-msgstr "缩放:"
+msgstr "缩放"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -7728,52 +7677,44 @@ msgid "Animation Key Inserted."
msgstr "插入动画键。"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Pitch:"
-msgstr "俯仰角"
+msgstr "俯仰角:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw:"
-msgstr ""
+msgstr "偏航角:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "大小: "
+msgstr "大小:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Objects Drawn:"
-msgstr "绘制对象"
+msgstr "绘制对象:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Material Changes:"
-msgstr "材质变更"
+msgstr "材质变更:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes:"
-msgstr "着色器变更"
+msgstr "着色器变更:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Surface Changes:"
-msgstr "表面变更"
+msgstr "表面变更:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "绘制调用"
+msgstr "绘制调用:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Vertices:"
-msgstr "顶点"
+msgstr "顶点:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS: %d (%s ms)"
-msgstr ""
+msgstr "FPS:%d(%s 毫秒)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7928,9 +7869,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"
@@ -7950,9 +7890,8 @@ msgstr ""
"不能反馈出实际游戏中的性能。"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "转换为 %s"
+msgstr "转换房间"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -7973,7 +7912,6 @@ msgstr ""
"半睁眼:Gizmo 也可穿过不透明的表面可见(“X 光”)。"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes to Floor"
msgstr "将节点吸附至地面"
@@ -7991,7 +7929,7 @@ msgstr "使用吸附"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Converts rooms for portal culling."
-msgstr ""
+msgstr "为门户剔除转换房间。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -8087,9 +8025,8 @@ msgid "View Grid"
msgstr "显示网格"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Portal Culling"
-msgstr "视口设置"
+msgstr "显示门户剔除"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8409,221 +8346,194 @@ msgid "TextureRegion"
msgstr "纹理区域"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
msgstr "颜色"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
msgstr "字体"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
msgstr "图标"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Styleboxes"
-msgstr "样式"
+msgstr "样式盒"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} color(s)"
-msgstr ""
+msgstr "{num} 个颜色"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "找不到子资源。"
+msgstr "没有颜色。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "{num} constant(s)"
-msgstr "常量"
+msgstr "{num} 个常量"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "颜色常量。"
+msgstr "没有常量。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
-msgstr ""
+msgstr "{num} 个字体"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No fonts found."
-msgstr "未找到!"
+msgstr "没有字体。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} icon(s)"
-msgstr ""
+msgstr "{num} 个图标"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No icons found."
-msgstr "未找到!"
+msgstr "没有图标。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} stylebox(es)"
-msgstr ""
+msgstr "{num} 个样式盒"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No styleboxes found."
-msgstr "找不到子资源。"
+msgstr "没有样式盒。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} currently selected"
-msgstr ""
+msgstr "当前选中 {num} 个"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Nothing was selected for the import."
-msgstr ""
+msgstr "没有选中导入任何东西。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Importing Theme Items"
-msgstr "导入主题"
+msgstr "正在导入主题项目"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Importing items {n}/{n}"
-msgstr ""
+msgstr "正在导入项目 {n}/{n}"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "确定要退出编辑器吗?"
+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"
-msgstr ""
+msgstr "含数据"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "选择一个节点"
+msgstr "按数据类型选择:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "选择一个拆分以擦除它。"
+msgstr "选择所有可见的颜色项目。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
-msgstr ""
+msgstr "选择所有可见的颜色项目和它们的数据。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible color items."
-msgstr ""
+msgstr "取消选择所有可见的颜色项目。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "请先选择一个设置项!"
+msgstr "选择所有可见的常量项目。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
-msgstr ""
+msgstr "选择所有可见的常量项目和它们的数据。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible constant items."
-msgstr ""
+msgstr "取消选择所有可见的常量项目。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "请先选择一个设置项!"
+msgstr "选择所有可见的字体项目。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
-msgstr ""
+msgstr "选择所有可见的字体项目和它们的数据。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible font items."
-msgstr ""
+msgstr "取消选择所有可见的字体项目。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "请先选择一个设置项!"
+msgstr "选择所有可见的图标项目。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "请先选择一个设置项!"
+msgstr "选择所有可见的图标项目和它们的数据。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "请先选择一个设置项!"
+msgstr "取消选择所有可见的图标项目。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
-msgstr ""
+msgstr "选择所有可见的样式盒项目。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items and their data."
-msgstr ""
+msgstr "选择所有可见的样式盒项目和它们的数据。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all visible stylebox items."
-msgstr ""
+msgstr "取消选择所有可见的样式盒项目。"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
"Caution: Adding icon data may considerably increase the size of your Theme "
"resource."
-msgstr ""
+msgstr "注意:添加图标数据可能显著增加主题资源的大小。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "全部折叠"
+msgstr "折叠类型。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "全部展开"
+msgstr "展开类型。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "选择模板文件"
+msgstr "选择所有主题项目。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select With Data"
-msgstr "选择顶点"
+msgstr "选择含数据"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all Theme items with item data."
-msgstr ""
+msgstr "选择所有主题项目及项目数据。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect All"
-msgstr "全选"
+msgstr "取消全选"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Deselect all Theme items."
-msgstr ""
+msgstr "取消选择所有主题项目。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "导入场景"
+msgstr "导入所选项"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8631,271 +8541,241 @@ msgid ""
"closing this window.\n"
"Close anyway?"
msgstr ""
+"导入项目选项卡还有选中的项目。关闭本窗口会丢失选项。\n"
+"仍然关闭吗?"
+
+#: 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
-#, fuzzy
msgid "Remove All Color Items"
-msgstr "移除所有项目"
+msgstr "移除所有颜色项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "移除项目"
+msgstr "重命名项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Constant Items"
-msgstr "移除所有项目"
+msgstr "移除所有常量项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Font Items"
-msgstr "移除所有项目"
+msgstr "移除所有字体项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Icon Items"
-msgstr "移除所有项目"
+msgstr "移除所有图标项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All StyleBox Items"
-msgstr "移除所有项目"
+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
-#, fuzzy
msgid "Add Color Item"
-msgstr "添加类项目"
+msgstr "添加颜色项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Constant Item"
-msgstr "添加类项目"
+msgstr "添加常量项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Font Item"
-msgstr "添加项目"
+msgstr "添加字体项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Icon Item"
-msgstr "添加项目"
+msgstr "添加图标项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Stylebox Item"
-msgstr "添加所有项目"
+msgstr "添加样式盒项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Color Item"
-msgstr "移除类项目"
+msgstr "重命名颜色项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Constant Item"
-msgstr "移除类项目"
+msgstr "重命名常量项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Font Item"
-msgstr "重命名节点"
+msgstr "重命名字体项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Icon Item"
-msgstr "重命名节点"
+msgstr "重命名图标项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Stylebox Item"
-msgstr "移除选中项目"
+msgstr "重命名样式盒项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Invalid file, not a Theme resource."
-msgstr "无效文件,不是音频总线布局。"
+msgstr "无效文件,不是 Theme 资源。"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Invalid file, same as the edited Theme resource."
-msgstr ""
+msgstr "无效文件,与正在编辑的 Theme 资源相同。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Theme Items"
-msgstr "管理模板"
+msgstr "管理主题项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Items"
-msgstr "可编辑的项目"
+msgstr "编辑项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Types:"
msgstr "类型:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Type:"
-msgstr "类型:"
+msgstr "添加类型:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item:"
-msgstr "添加项目"
+msgstr "添加项目:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add StyleBox Item"
-msgstr "添加所有项目"
+msgstr "添加样式盒项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Items:"
-msgstr "移除项目"
+msgstr "移除项目:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
msgstr "移除类项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Items"
-msgstr "移除类项目"
+msgstr "移除自定义项目"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
msgstr "移除所有项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Theme Item"
-msgstr "GUI主题项目"
+msgstr "添加主题项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "节点名称:"
+msgstr "旧名称:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Items"
-msgstr "导入主题"
+msgstr "导入项目"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "默认"
+msgstr "默认主题"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "编辑主题"
+msgstr "编辑器主题"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "删除资源"
+msgstr "选择其它主题资源:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Another Theme"
-msgstr "导入主题"
+msgstr "其它主题"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Confirm Item Rename"
-msgstr "重命名轨道"
+msgstr "确认项目重命名"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Cancel Item Rename"
-msgstr "批量重命名"
+msgstr "取消项目重命名"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "重写"
+msgstr "覆盖项目"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
-msgstr ""
+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
-#, fuzzy
msgid "Add Type"
-msgstr "类型"
+msgstr "添加类型"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Item Type"
-msgstr "添加项目"
+msgstr "添加项目类型"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Node Types:"
-msgstr "节点类型"
+msgstr "节点类型:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "加载默认"
+msgstr "显示默认"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
-msgstr ""
+msgstr "将默认类型项目与覆盖后的一起显示。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "重写"
+msgstr "全部覆盖"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
-msgstr ""
+msgstr "覆盖所有默认类型项目。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme:"
-msgstr "主题"
+msgstr "主题:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Manage Items..."
-msgstr "管理导出模板..."
+msgstr "管理项目..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add, remove, organize and import Theme items."
-msgstr ""
+msgstr "添加、移除、组织和导入 Theme 项目。"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "预览"
+msgstr "添加预览"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "更新预览"
+msgstr "默认预览"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select UI Scene:"
-msgstr "选择源网格:"
+msgstr "选择 UI 场景:"
#: editor/plugins/theme_editor_preview.cpp
msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
-msgstr ""
+msgstr "开关控件拾取器,可以可视化地选择所需编辑的控件类型。"
#: editor/plugins/theme_editor_preview.cpp
msgid "Toggle Button"
@@ -8930,7 +8810,6 @@ msgid "Checked Radio Item"
msgstr "已选单选项目"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
msgstr "带名称的分隔线"
@@ -8984,20 +8863,19 @@ msgstr "有, 很多, 选项"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid path, the PackedScene resource was probably moved or removed."
-msgstr ""
+msgstr "无效路径,PackedScene 资源可能已被移动或移除。"
#: editor/plugins/theme_editor_preview.cpp
msgid "Invalid PackedScene resource, must have a Control node at its root."
-msgstr ""
+msgstr "无效 PackedScene 资源,根节点必须是 Control 节点。"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Invalid file, not a PackedScene resource."
-msgstr "无效文件,不是音频总线布局。"
+msgstr "无效文件,不是 PackedScene 资源。"
#: editor/plugins/theme_editor_preview.cpp
msgid "Reload the scene to reflect its most actual state."
-msgstr ""
+msgstr "重新加载场景,反映最新状态。"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
@@ -10354,9 +10232,8 @@ msgid "VisualShader"
msgstr "可视着色器"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property:"
-msgstr "编辑可视属性"
+msgstr "编辑可视属性:"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -10480,9 +10357,8 @@ msgid "Script"
msgstr "脚本"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Export Mode:"
-msgstr "脚本导出模式:"
+msgstr "GDScript 导出模式:"
#: editor/project_export.cpp
msgid "Text"
@@ -10490,21 +10366,19 @@ msgstr "文本"
#: editor/project_export.cpp
msgid "Compiled Bytecode (Faster Loading)"
-msgstr ""
+msgstr "编译后的字节码(加载更快)"
#: editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
msgstr "加密(在下面提供密钥)"
#: editor/project_export.cpp
-#, fuzzy
msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)"
-msgstr "无效的加密密钥(长度必须为 64 个字符)"
+msgstr "无效的加密密钥(长度必须为 64 个十六进制字符)"
#: editor/project_export.cpp
-#, fuzzy
msgid "GDScript Encryption Key (256-bits as hexadecimal):"
-msgstr "脚本加密密钥(256 位 16 进制码):"
+msgstr "GDScript 加密密钥(256 位十六进制码):"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
@@ -10576,7 +10450,6 @@ msgid "Imported Project"
msgstr "已导入的项目"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "项目名称无效。"
@@ -10792,14 +10665,12 @@ 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 "从列表中选择设备"
+msgstr "是否从列表中移除 %d 个项目?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "从列表中选择设备"
+msgstr "是否从列表中移除该项目?"
#: editor/project_manager.cpp
msgid ""
@@ -10831,9 +10702,8 @@ msgid "Project Manager"
msgstr "项目管理器"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "项目"
+msgstr "本地项目"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -10844,23 +10714,20 @@ msgid "Last Modified"
msgstr "修改时间"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "导出项目"
+msgstr "编辑项目"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "重命名项目"
+msgstr "运行项目"
#: editor/project_manager.cpp
msgid "Scan"
msgstr "扫描"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Scan Projects"
-msgstr "项目"
+msgstr "扫描项目"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -10871,14 +10738,12 @@ msgid "New Project"
msgstr "新建项目"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "已导入的项目"
+msgstr "导入项目"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "重命名项目"
+msgstr "移除项目"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -10889,9 +10754,8 @@ msgid "About"
msgstr "关于"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Asset Library Projects"
-msgstr "素材库"
+msgstr "素材库项目"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -10903,7 +10767,7 @@ msgstr "移除全部"
#: editor/project_manager.cpp
msgid "Also delete project contents (no undo!)"
-msgstr ""
+msgstr "同时删除项目内容(无法撤销!)"
#: editor/project_manager.cpp
msgid "Can't run project"
@@ -10918,19 +10782,17 @@ msgstr ""
"是否查看素材库中的官方示例项目?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "筛选属性"
+msgstr "筛选项目"
#: editor/project_manager.cpp
-#, fuzzy
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 ""
-"搜索框根据名称和路径的末尾部分来过滤项目。\n"
-"如果要根据名称和完整路径过滤,搜索内容应至少包含一个 `/` 字符。"
+"该搜索框根据名称和路径的末尾部分来筛选项目。\n"
+"如果要根据名称和完整路径筛选,搜索内容应至少包含一个“/”字符。"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10938,7 +10800,7 @@ msgstr "按键 "
#: editor/project_settings_editor.cpp
msgid "Physical Key"
-msgstr ""
+msgstr "物理按键"
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -10984,7 +10846,7 @@ msgstr "设备"
#: editor/project_settings_editor.cpp
msgid " (Physical)"
-msgstr ""
+msgstr " (物理)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -11126,23 +10988,20 @@ msgid "Override for Feature"
msgstr "重写功能"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "添加翻译"
+msgstr "添加 %d 个翻译"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
msgstr "移除翻译"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Path(s)"
-msgstr "添加资源重定向"
+msgstr "翻译资源重定向:添加 %d 个路径"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Translation Resource Remap: Add %d Remap(s)"
-msgstr "添加资源重定向"
+msgstr "翻译资源重定向:添加 %d 个重定向"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
@@ -11581,13 +11440,13 @@ msgstr "是否删除节点 “%s”?"
#: editor/scene_tree_dock.cpp
msgid ""
"Saving the branch as a scene requires having a scene open in the editor."
-msgstr ""
+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 ""
+msgstr "将分支保存为场景需要仅选择一个节点,但你选了 %d 个。"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11596,6 +11455,9 @@ msgid ""
"FileSystem dock context menu\n"
"or create an inherited scene using Scene > New Inherited Scene... instead."
msgstr ""
+"无法将根节点保存为实例化节点。\n"
+"如果要创建当前场景的可编辑副本,请在文件系统面板的上下文菜单中复制\n"
+"或者使用场景 > 新建继承场景... 创建继承场景。"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11603,6 +11465,9 @@ msgid ""
"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 ""
+"无法保存实例化场景分支。\n"
+"如果要创建场景的变种,请使用场景 > 新建继承场景... 创建基于该实例化场景的继承"
+"场景。"
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
@@ -11998,7 +11863,7 @@ msgstr "注意:内置脚本有其局限性,并且不能使用外部编辑器
msgid ""
"Warning: Having the script name be the same as a built-in type is usually "
"not desired."
-msgstr ""
+msgstr "警告:脚本名称通常不能与内置类型一致。"
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -12070,7 +11935,7 @@ msgstr "复制错误信息"
#: editor/script_editor_debugger.cpp
msgid "Open C++ Source on GitHub"
-msgstr ""
+msgstr "在 GitHub 打开 C++ 源码"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -12142,7 +12007,7 @@ msgstr "格式"
#: editor/script_editor_debugger.cpp
msgid "Usage"
-msgstr "用法"
+msgstr "占用"
#: editor/script_editor_debugger.cpp
msgid "Misc"
@@ -12248,6 +12113,16 @@ msgstr "修改圆柱体高度"
msgid "Change Ray Shape Length"
msgstr "修改射线形状长度"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "设置曲线的顶点坐标"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "设置曲线的顶点坐标"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "改变圆柱体半径"
@@ -12357,14 +12232,12 @@ msgid "Object can't provide a length."
msgstr "对象无法提供长度。"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Mesh GLTF2"
-msgstr "导出网格库"
+msgstr "导出网格 GLTF2"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "导出..."
+msgstr "导出 GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12404,12 +12277,11 @@ msgstr "网格地图粘贴所选项"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paint"
-msgstr "绘制栅格图"
+msgstr "网格地图绘制"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Selection"
-msgstr "网格地图填充所选项"
+msgstr "网格地图选择"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -12656,14 +12528,12 @@ msgid "Add Output Port"
msgstr "增加输出端口"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Type"
-msgstr "更改类型"
+msgstr "更改端口类型"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Port Name"
-msgstr "更改输入端口名称"
+msgstr "更改端口名称"
#: modules/visual_script/visual_script_editor.cpp
msgid "Override an existing built-in function."
@@ -12774,7 +12644,6 @@ msgid "Add Preload Node"
msgstr "添加预载 (Preload) 节点"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s)"
msgstr "添加节点"
@@ -13034,37 +12903,31 @@ msgstr "从列表中选择设备"
#: platform/android/export/export.cpp
msgid "Running on %s"
-msgstr ""
+msgstr "正运行于 %d"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting APK..."
-msgstr "全部导出"
+msgstr "正在导出 APK……"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Uninstalling..."
-msgstr "卸载"
+msgstr "正在卸载……"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Installing to device, please wait..."
-msgstr "正在加载,请稍候……"
+msgstr "正在安装到设备,请稍候……"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not install to device: %s"
-msgstr "无法实例化场景!"
+msgstr "无法安装到设备:%s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Running on device..."
-msgstr "执行自定义脚本..."
+msgstr "正在设备上运行……"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not execute on device."
-msgstr "无法创建文件夹。"
+msgstr "无法在设备上运行。"
#: platform/android/export/export.cpp
msgid "Unable to find the 'apksigner' tool."
@@ -13173,40 +13036,37 @@ msgid ""
"directory.\n"
"The resulting %s is unsigned."
msgstr ""
+"无法找到“apksigner”。\n"
+"请检查 Android SDK 的 build-tools 目录中是否有此命令。\n"
+"生成的 %s 未签名。"
#: platform/android/export/export.cpp
msgid "Signing debug %s..."
-msgstr ""
+msgstr "正在签名调试 %s……"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Signing release %s..."
-msgstr ""
-"正在扫描文件,\n"
-"请稍候……"
+msgstr "正在签名发布 %s……"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not find keystore, unable to export."
-msgstr "无法打开导出模板:"
+msgstr "找不到密钥库,无法导出。"
#: platform/android/export/export.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "“apksigner”返回错误 #%d"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Verifying %s..."
-msgstr "正在添加 %s..."
+msgstr "正在校验 %s……"
#: platform/android/export/export.cpp
msgid "'apksigner' verification of %s failed."
-msgstr ""
+msgstr "“apksigner”校验 %s 失败。"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Exporting for Android"
-msgstr "全部导出"
+msgstr "正在为 Android 导出"
#: platform/android/export/export.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
@@ -13222,7 +13082,7 @@ msgstr "无效文件名!Android APK 必须有 *.apk 扩展。"
#: platform/android/export/export.cpp
msgid "Unsupported export format!\n"
-msgstr ""
+msgstr "不支持的导出格式!\n"
#: platform/android/export/export.cpp
msgid ""
@@ -13246,17 +13106,15 @@ msgstr ""
#: platform/android/export/export.cpp
msgid ""
"Unable to overwrite res://android/build/res/*.xml files with project name"
-msgstr ""
+msgstr "无法使用项目名称覆盖 res://android/build/res/*.xml 文件"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr "无法在项目目录下找到project.godot文件。"
+msgstr "无法将项目文件导出至 gradle 项目\n"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not write expansion package file!"
-msgstr "无法写入文件:"
+msgstr "无法写入扩展包文件!"
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
@@ -13281,21 +13139,20 @@ msgid ""
msgstr "无法复制与更名导出文件,请在 Gradle 项目文件夹内确认输出。"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Package not found: %s"
-msgstr "没有动画: “%s”"
+msgstr "包不存在:%s"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Creating APK..."
-msgstr "正在创建轮廓..."
+msgstr "正在创建 APK……"
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"Could not find template APK to export:\n"
"%s"
-msgstr "无法打开导出模板:"
+msgstr ""
+"找不到导出模板 APK:\n"
+"%s"
#: platform/android/export/export.cpp
msgid ""
@@ -13304,24 +13161,24 @@ msgid ""
"Please build a template with all required libraries, or uncheck the missing "
"architectures in the export preset."
msgstr ""
+"导出模板缺失所选架构的库:%s。\n"
+"请使用全部所需的库构建模板,或者在导出预设中取消对缺失架构的选择。"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Adding files..."
-msgstr "正在添加 %s..."
+msgstr "正在添加文件……"
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Could not export project files"
-msgstr "无法写入文件:"
+msgstr "无法导出项目文件"
#: platform/android/export/export.cpp
msgid "Aligning APK..."
-msgstr "对齐 APK..."
+msgstr "正在对齐 APK……"
#: platform/android/export/export.cpp
msgid "Could not unzip temporary unaligned APK."
-msgstr ""
+msgstr "无法解压未对齐的临时 APK。"
#: platform/iphone/export/export.cpp platform/osx/export/export.cpp
msgid "Identifier is missing."
@@ -13368,45 +13225,40 @@ msgid "Could not write file:"
msgstr "无法写入文件:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "无法写入文件:"
+msgstr "无法读取文件:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read HTML shell:"
-msgstr "无法读取自定义 HTML 壳层:"
+msgstr "无法读取 HTML 壳:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not create HTTP server directory:"
-msgstr "无法创建文件夹。"
+msgstr "无法创建 HTTP 服务器目录:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Error starting HTTP server:"
-msgstr "保存场景出错。"
+msgstr "启动 HTTP 服务器时出错:"
#: platform/osx/export/export.cpp
-#, fuzzy
msgid "Invalid bundle identifier:"
-msgstr "无效的标识符:"
+msgstr "无效的包标识符:"
#: platform/osx/export/export.cpp
msgid "Notarization: code signing required."
-msgstr ""
+msgstr "公证:需要代码签名。"
#: platform/osx/export/export.cpp
msgid "Notarization: hardened runtime required."
-msgstr ""
+msgstr "公证:需要加强的运行时环境。"
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID name not specified."
-msgstr ""
+msgstr "公证:未指定 Apple ID 名称。"
#: platform/osx/export/export.cpp
msgid "Notarization: Apple ID password not specified."
-msgstr ""
+msgstr "公证:未指定 Apple ID 密码。"
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -13799,6 +13651,8 @@ msgid ""
"longer has any effect.\n"
"To remove this warning, disable the GIProbe's Compress property."
msgstr ""
+"因为存在已知问题,GIProbe Compress 属性已被启用,不会再起任何作用。\n"
+"如果要移除本警告,请禁用 GIProbe 的 Compress 属性。"
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -13882,15 +13736,15 @@ msgstr "Node A 与 Node B 必须为不同的 PhysicsBody"
#: scene/3d/portal.cpp
msgid "The RoomManager should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomManager 不应该是 Portal 的子节点或孙节点。"
#: scene/3d/portal.cpp
msgid "A Room should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "Room 不应该是 Portal 的子节点或孙节点。"
#: scene/3d/portal.cpp
msgid "A RoomGroup should not be a child or grandchild of a Portal."
-msgstr ""
+msgstr "RoomGroup 不应该是 Portal 的子节点或孙节点。"
#: scene/3d/remote_transform.cpp
msgid ""
@@ -13901,42 +13755,82 @@ msgstr ""
#: scene/3d/room.cpp
msgid "A Room cannot have another Room as a child or grandchild."
-msgstr ""
+msgstr "Room 不能是另一个 Room 的子节点或孙节点。"
#: scene/3d/room.cpp
msgid "The RoomManager should not be placed inside a Room."
-msgstr ""
+msgstr "RoomManager 不应该被放置在 Room 中。"
#: scene/3d/room.cpp
msgid "A RoomGroup should not be placed inside a Room."
-msgstr ""
+msgstr "RoomGroup 不应该被放置在 Room 中。"
#: 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 ""
+"房间的凸包中包含大量平面。\n"
+"为了提升性能,请考虑简化房间的边界。"
#: scene/3d/room_group.cpp
msgid "The RoomManager should not be placed inside a RoomGroup."
-msgstr ""
+msgstr "RoomManager 不应该被放置在 RoomGroup 中。"
#: scene/3d/room_manager.cpp
msgid "The RoomList has not been assigned."
-msgstr ""
+msgstr "RoomList 尚未赋值。"
#: scene/3d/room_manager.cpp
msgid "The RoomList node should be a Spatial (or derived from Spatial)."
-msgstr ""
+msgstr "RoomList 节点应该是 Spatial(或者派生自 Spatial)。"
#: 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 ""
+"Portal Depth Limit 被设置为零。\n"
+"仅会渲染摄像机所在房间。"
#: scene/3d/room_manager.cpp
msgid "There should only be one RoomManager in the SceneTree."
+msgstr "场景树中仅能存在一个 RoomManager。"
+
+#: 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
@@ -13999,7 +13893,7 @@ msgstr "没有动画: “%s”"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
-msgstr ""
+msgstr "动画应用重置"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
@@ -14165,25 +14059,24 @@ msgid "Invalid comparison function for that type."
msgstr "该类型的比较功能无效。"
#: servers/visual/shader_language.cpp
-#, fuzzy
msgid "Varying may not be assigned in the '%s' function."
-msgstr "变量只能在顶点函数中指定。"
+msgstr "Varying 不能在“%s”函数中赋值。"
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'vertex' function may not be reassigned in "
"'fragment' or 'light'."
-msgstr ""
+msgstr "已在“vertex”函数中赋值的 varying 不能在“fragment”或“light”中重新赋值。"
#: servers/visual/shader_language.cpp
msgid ""
"Varyings which assigned in 'fragment' function may not be reassigned in "
"'vertex' or 'light'."
-msgstr ""
+msgstr "已在“fragment”函数中赋值的 varying 不能在“vertex”或“light”中重新赋值。"
#: servers/visual/shader_language.cpp
msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
+msgstr "不能在自定义函数中访问片段 varying!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -15184,9 +15077,6 @@ msgstr "不允许修改常量。"
#~ msgid "I see..."
#~ msgstr "好吧..."
-#~ msgid "Can't open '%s'."
-#~ msgstr "无法打开 \"%s\"。"
-
#~ msgid "Ugh"
#~ msgstr "呃"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 9cae040eb4..e5327f79d9 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -361,6 +361,7 @@ msgstr "更改動畫循環"
msgid "Remove Anim Track"
msgstr "移除動畫軌跡"
+#. TRANSLATORS: %s will be replaced by a phrase describing the target of track.
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Create NEW track for %s and insert key?"
@@ -389,10 +390,28 @@ msgstr "新增"
msgid "Anim Insert"
msgstr "插入動畫"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "不能連接。"
+
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+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
+#, fuzzy
+msgid "property '%s'"
+msgstr "內容"
+
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Anim Create & Insert"
@@ -990,7 +1009,7 @@ msgstr "新增"
msgid "No results for \"%s\"."
msgstr ""
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2367,6 +2386,17 @@ 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 ""
@@ -3209,10 +3239,6 @@ msgid "Save & Restart"
msgstr "儲存檔案"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr ""
-
-#: editor/editor_node.cpp
#, fuzzy
msgid "Update Continuously"
msgstr "連續"
@@ -3873,6 +3899,16 @@ msgid "Download from:"
msgstr "下載出現錯誤"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "瀏覽"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "載入錯誤"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8886,6 +8922,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "移除選項"
@@ -8916,6 +8958,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "加到最愛"
@@ -12581,6 +12629,16 @@ msgstr ""
msgid "Change Ray Shape Length"
msgstr ""
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "只限選中"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "只限選中"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr ""
@@ -14267,6 +14325,42 @@ msgstr ""
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 ""
@@ -14917,10 +15011,6 @@ msgstr ""
#~ msgstr "多謝!"
#, fuzzy
-#~ msgid "Can't open '%s'."
-#~ msgstr "不能連接。"
-
-#, fuzzy
#~ msgid "Ugh"
#~ msgstr "嗯......"
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 2b4dd0fc03..4fc48abd03 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -360,6 +360,7 @@ msgstr "更改動畫循環模式"
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 "確定要為 %s 建立動畫軌並插入關鍵畫格嗎?"
@@ -384,10 +385,28 @@ msgstr "建立"
msgid "Anim Insert"
msgstr "插入動畫"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "node '%s'"
+msgstr "無法開啟 \"%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 "動畫"
+
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
msgstr "AnimationPlayer 不能播放自己,只可播放其他 Player。"
+#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string.
+#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "property '%s'"
+msgstr "屬性「%s」不存在。"
+
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
msgstr "新增並插入動畫"
@@ -955,7 +974,7 @@ msgstr "建立新的 %s"
msgid "No results for \"%s\"."
msgstr "找不到與「%s」相關的結果。"
-#: editor/create_dialog.cpp
+#: editor/create_dialog.cpp editor/property_selector.cpp
msgid "No description available for %s."
msgstr ""
@@ -2292,6 +2311,17 @@ 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 "匯入的資源無法保存。"
@@ -3115,10 +3145,6 @@ msgid "Save & Restart"
msgstr "保存並重新啟動"
#: editor/editor_node.cpp
-msgid "Spins when the editor window redraws."
-msgstr "編輯器視窗重新繪製時旋轉。"
-
-#: editor/editor_node.cpp
msgid "Update Continuously"
msgstr "持續更新"
@@ -3768,6 +3794,16 @@ msgid "Download from:"
msgstr "下載錯誤"
#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Open in Web Browser"
+msgstr "在瀏覽器中執行"
+
+#: editor/export_template_manager.cpp
+#, fuzzy
+msgid "Copy Mirror URL"
+msgstr "複製錯誤"
+
+#: editor/export_template_manager.cpp
msgid "Download and Install"
msgstr ""
@@ -8581,6 +8617,12 @@ msgid ""
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
#, fuzzy
msgid "Remove All Color Items"
msgstr "移除所有項目"
@@ -8611,6 +8653,12 @@ 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
#, fuzzy
msgid "Add Color Item"
msgstr "新增類別項目"
@@ -12194,6 +12242,16 @@ msgstr "更改圓柱形高度"
msgid "Change Ray Shape Length"
msgstr "更改射線形長度"
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Room Point Position"
+msgstr "設定曲線控制點位置"
+
+#: editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Set Portal Point Position"
+msgstr "設定曲線控制點位置"
+
#: modules/csg/csg_gizmos.cpp
msgid "Change Cylinder Radius"
msgstr "更改圓柱體半徑"
@@ -13887,6 +13945,42 @@ msgstr ""
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 "該形體在設定網格前都將被忽略。"
@@ -14806,9 +14900,6 @@ msgstr "不可修改常數。"
#~ msgid "Thanks!"
#~ msgstr "謝謝!"
-#~ msgid "Can't open '%s'."
-#~ msgstr "無法開啟 \"%s\"。"
-
#~ msgid "Ugh"
#~ msgstr "呃"